当前位置: 首页 > 知识库问答 >
问题:

在if语句之外使用变量

毛勇
2023-03-14

我不完全确定这在Java中是否可行,但在if语句中声明的字符串之外,如何使用if语句中声明的字符串呢?

共有2个答案

易祯
2023-03-14

您需要区分变量声明和赋值。

String foo;                     // declaration of the variable "foo"
foo = "something";              // variable assignment

String bar = "something else";  // declaration + assignment on the same line

如果试图使用未赋值的声明变量,如:

String foo;

if ("something".equals(foo)) {...}

您将得到一个编译错误,因为变量没有分配任何东西,因为它只是声明的。

在本例中,在条件块中声明变量

if (someCondition) {
   String foo;
   foo = "foo";
}

if (foo.equals("something")) { ... }

所以它只在该块内部可见。您需要将该声明移到外部,并以某种方式为其赋值,否则您将获得条件赋值编译错误。一个例子是使用其他块:

String foo;

if (someCondition) { 
   foo = "foo";
} else {
   foo = null;
}

或在声明时分配默认值(null?)

String foo = null;

if (someCondition) {
   foo = "foo";
}
万俟嘉珍
2023-03-14

你不能,因为范围可变。

如果在If语句中定义变量,那么它将仅在If语句的范围内可见,该语句包括语句本身和子语句。

if(...){
   String a = "ok";
   // a is visible inside this scope, for instance
   if(a.contains("xyz")){
      a = "foo";
   }
}

您应该在作用域之外定义变量,然后在if语句中更新其值。

String a = "ok";
if(...){
    a = "foo";
}
 类似资料:
  • 我无法编译这个程序。有人看到我做错了什么吗?在if语句之后,变量matchOdds似乎不存在。但是我想打印出来。

  • 好吧,我正在使用字典,例如: 然后我想做的基本上是说,如果“用户”(一个参数)的名称前面有“@”,那么将变量前缀分配为“@”,如果他们的名称前面有“~”,则将变量前缀分配为“~”,如果他们有“ 然后我想说,如果用户的名字前面有“%”,则将前缀变量设置为“%”,否则将其设置为“”(因为这些值只有两个键)。为此,我需要一个if语句,并将其与self进行比较。声音的价值。 分配前缀变量的当前代码 目前,

  • 行动时刻 - 在unlang中使用if语句 if语句本身并不复杂。 它具有以下格式: if(condition){ ... } 由于其许多可能性,条件部分可能变得复杂。 使用if语句获取返回码 我们现在将查看模块的返回代码,并使用此代码与指定的条件进行比较。 FreeRADIUS中的每个模块都需要在调用时返回代码。 随后可以将此代码的值用作if语句中的条件检查。 使用if语句授权用户 如

  • 在Java,如果我们运行: 它将抛出: 但是,在php中,如果我们运行: 它将打印%1。 我怀疑这是否是因为Java是强类型语言,而php是弱类型语言。能不能有人给出一个更深层次、更低层次的解释?

  • 问题内容: 我想知道是否可以像这样在条件运算符中为变量赋值: 用Java有什么办法做到这一点?因为我知道在某些情况下这是可能的,但是我不确定在if语句中是否做错了或者是否不可能。 问题答案: 可以分配变量,但不能在条件语句中声明变量:

  • 问题内容: 在C语言中,我可以编写一个if语句 但是,当我尝试在Java中执行相同操作时,编译器会告诉我“不兼容的类型”,并说我需要一个而不是一个。有什么方法可以用Java编写C代码吗? 问题答案: 以下任何一项都可以为您工作: