标签: scope

当if语句为true时,转到函数结束

我在c#中编写代码,我想在if语句为true时执行{do something11}以及何时if

语句false执行{do something22},statement1和statement2,我不需要

if语句为true时执行statement1和statement2.我使用break ibn if语句但是

不是这样,我怎么能这样做?

static void one_time(int x)

{

  if (x<10)

     {do something11}  // when if true

  else

     {do something22}// when else true

  statement1   // when else true

  statement2  // when else true
 }
Run Code Online (Sandbox Code Playgroud)

.net c# scope if-statement

-3
推荐指数
1
解决办法
408
查看次数

从函数中更改main中的变量

我正在寻找类似于python global关键字的功能.我想从函数中更改main中声明的变量.

例如:

void f() {
    x = 5;
}

int main() {
    int x = 0;
    f();
    cout << x; // prints 5

}
Run Code Online (Sandbox Code Playgroud)

有解决方案吗

c++ scope global-variables

-3
推荐指数
1
解决办法
3096
查看次数

Java GUI编程

代码给出了nullpointer异常的错误..... wat做什么?

import java.awt.event.*;
import javax.swing.*;

public class Gui implements ActionListener{
JButton button;

public Gui(){
    JFrame frame=new JFrame();
    JButton button =new JButton("click me!");
    button.addActionListener(this);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(button);
    frame.setSize(270,300);
    frame.setVisible(true);
}
public static void main(String[] args){
    new Gui();
}

public void actionPerformed(ActionEvent e){
    button.setText("I've been clicked");
}

}
Run Code Online (Sandbox Code Playgroud)

java swing scope nullpointerexception

-5
推荐指数
2
解决办法
159
查看次数

是否有一个C#等同于Delphi的可赋值const?

在Delphi中,您可以在方法中声明一个常量,并在同一方法中为其赋值.我们的想法是,下次使用此方法时,const仍将具有与上次分配的值相同的值.

它在Delphi中看起来像这样:(
我这里没有Delphi所以它没有经过测试,对此感到抱歉,但它足以证明我的意思)

procedure Form1.test;
const
  AssignableConst: Integer = 0;
begin
  ShowMessage(AssignableConst);
  inc(AssignableConst);
end;
Run Code Online (Sandbox Code Playgroud)

每次调用过程测试时,消息框都会显示最后一个值+ 1

这个例子完全无用我知道它只是为了展示一个可赋值的const如何在Delphi中工作.

在c#中是否存在相同的含义?
我不想要一个涉及类中私有变量的解决方案,它必须留在方法中.

我的问题是关于范围.没有其他的.我不在乎该值是对象状态的一部分.这并不重要.重要的是我需要一个只能从方法范围访问的变量,而不是其他任何地方.
在Delphi中,这可以通过使用可赋值的const来完成,那么我如何在C#中执行此操作?

c# scope

-5
推荐指数
1
解决办法
275
查看次数

为什么C中的全局变量的存储类隐式定义为"extern"?

例如,当我们声明任何全局变量时

int x;
Run Code Online (Sandbox Code Playgroud)

它相当于

extern int x; 
Run Code Online (Sandbox Code Playgroud)

现在默认情况下,编译器将全局变量初始化为0,这意味着它们被分配了内存.但如果我只是写

extern int x;
Run Code Online (Sandbox Code Playgroud)

那么这只会声明变量,而不会分配任何内存.所以,我的查询是,如果我之前写externint x或者我不写它,在全局变量的情况下,编译器如何区别对待它们?在我简单写入的情况下int x,它分配内存并同时将extern置于之前int x,而在我写入的情况下extern int x,它只声明变量而没有分配内存.请说明编译器如何以两种方式运行.

c scope global-variables extern

-5
推荐指数
1
解决办法
210
查看次数

在C++中没有大括号的for循环的范围是什么

据我所知,{...}引入了一个新的范围,这就是为什么以下方法不起作用:

for(int i = 0; i < 10; i++) {
    // Do something...
}

cout << i << endl;  // Error: i is not defined in this scope
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试没有大括号的同样的事情时,我得到了同样的错误.

for (int i = 0; i < 10; i++) continue;
cout << i << endl;  // Same error, not sure why
Run Code Online (Sandbox Code Playgroud)

我希望i在第二个例子中定义,因为没有{...}引入新的范围.

c++ scope curly-braces

-5
推荐指数
1
解决办法
262
查看次数

如果初始化语句作用于内部if块,则golang.为什么?

我在代码中发现了一个错误

func receive() (err error) {
    if v, err := produce(); err == nil {
        fmt.Println("value: ", v)
    }
    return
}
Run Code Online (Sandbox Code Playgroud)

错误永远不会从此函数返回,但我绝对相信它应该.

经过一些测试后,我明白err在if语句中重新声明了这一点.更重要的是 - 所有变量总是在短变量赋值内部if声明中重新声明,尽管它们之前被声明过.

这是工作代码

func receive() (err error) {
    v, err := produce()
    if err == nil {
        fmt.Println("value: ", v)
    }
    return
}
Run Code Online (Sandbox Code Playgroud)

这是一个例子:https://play.golang.org/p/1AWBsPbLiI1

好像if语句

//some code
if <init_statement>; <expression> {}
//more code
Run Code Online (Sandbox Code Playgroud)

相当于

//some code
{
    <init_statement>
    if expression {}
}
//more code
Run Code Online (Sandbox Code Playgroud)

所以,我的问题:

1)为什么不使用现有变量

2)为什么在文档/语言规范中没有提到这样的范围

3)为什么编译器不会说没有人返回值

scope if-statement go

-6
推荐指数
1
解决办法
337
查看次数

为什么此代码中的`bar`没有静态存储持续时间?

代码优先:

#include <stdio.h>

void foo()
{
        static int bar;
}

int main()
{
        bar++;
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译器(Clang)抱怨:

static.c:10:2: error: use of undeclared identifier 'bar'
Run Code Online (Sandbox Code Playgroud)

该语句static int bar;中是否应该foo()给出bar静态存储持续时间,这使得它在main函数之前声明并初始化?

c static scope declaration

-7
推荐指数
1
解决办法
66
查看次数

如何在单个C#函数中为两个或多个不同的变量使用相同的名称?

如何删除曾经声明和定义的变量?

例如,在C++中我会这样做:

int x;

..

delete x;
Run Code Online (Sandbox Code Playgroud)

我怎么能在C#中做到这一点?

(我需要做这样的事情:

switch (something)
{
case 1:
int Number;
break;

case 2:
float Number;
break;
}
Run Code Online (Sandbox Code Playgroud)

但是我不能这样做,因为Number已经被case 1占用了...而且我想要相同的名字,所以我想在声明float Number之前删除int Number,所以compilator不会对我大喊大叫.,p

c# variables scope identifier

-8
推荐指数
1
解决办法
91
查看次数

这个错误是什么? - 在建筑阶段失败

我在构建时遇到此错误:

dist/package.conf.inplace:
inappropriate type

FAILED DURING THE BUILDING PHASE. The **exception** was: ExitFailure 1
Run Code Online (Sandbox Code Playgroud)

如何subRegex Text.Regex 包中使用?

我已经写了:

import Text.Regex.Posix
Run Code Online (Sandbox Code Playgroud)

但我得到了这个错误:

_.hs:13:5: Not in scope: ‘subRegex’

_.hs:13:15:
    Not in scope: ‘mkRegex’
    Perhaps you meant ‘makeRegex’ (imported from Text.Regex.Posix)
Run Code Online (Sandbox Code Playgroud)

所以,我去了Text.Regex[页] [1],然后说:

使用POSIX正则表达式接口Text.Regex.Posix.

那么为什么不是这些功能在范围内呢?

regex haskell scope ghc

-25
推荐指数
2
解决办法
785
查看次数

为什么我们不能在 if 语句中声明变量?

我知道 Stack Overflow 上有这样的问题,但我想知道为什么我们不能在if语句内声明变量,这样我们就可以通过利用if作用域来节省空间。

例如,如果我写:

if (int i) {
    ...
} 
Run Code Online (Sandbox Code Playgroud)

i那么我只能在范围内使用if,但是如果我将其写在语句之外if,那么i变量应该在整个块的内存中。

java scope if-statement variable-assignment

-39
推荐指数
1
解决办法
1876
查看次数