我只是在学习编码,所以我遇到了“k不能解决”的问题。
我以前尝试过引入变量,如果运算符by:
double a = 2.1223;
int b = (int) a;
if(a-b > 0.5) {
int k = b + 1;
}
else {
int k = (int)b ;
}
System.out.println(k); // k cannot be resolved.why??
我预期输出为2
相反,无法解析got k
问题在于您的实现。正如您所看到的,您在开头定义了k。但有趣的是你把它定义为“无”:
int k;
您定义的其他k在if
和else if
函数中,不能被println()
函数访问。这意味着您传递的是未定义要打印的内容。那肯定会导致一个错误。这就是XtremeBaumer所说的作用域。这意味着变量的属性定义了它们的可见性和可用性。
正确的方法是:
double a = 2.1223 ;
int b = (int) a ;
if(a-b > 0.5) {
k = b + 1;
}
else {
k = b; //No casting needed
}
System.out.println(k);
这样,您就不会每次检查if或else if时都创建一个新的k变量。您所做的是再次使用k变量,只需说k=whatever
。您的问题是通过执行int k
再次创建了k变量。
此外,正如Andy Turner所指出的,您不需要将b
强制转换为int
,因为它已经是一个int。
问题内容: 我正在尝试创建一个查询,该查询将针对中的每个服务器中特定数据库中的特定表执行一次。 对于每个我想知道的内容。 所以我需要的是这样的: 然而,在似乎并不工作。 有什么建议吗?感谢您与我一起思考。 问题答案: 您必须使用动态sql: 这是有关exec的更多信息。
出于某种原因,当我尝试运行这段代码时,它总是返回找不到符号。然后我发现问题是变量无法解析为变量。我不知道为什么它无法将其解析为变量。
问题内容: 这可能很明显,但是当我试图强制用户继续输入值直到他输入有效值时,我收到一个错误,指出该变量无法解析。 然后,如果我事先声明它,则会收到一条错误消息,指出重复值。 在担心这个问题之前,编译器难道不应该先执行该语句吗? 问题答案: 在循环之前声明,使其作用域更像下面这样:
在此输入图像说明 食物不能解析为变量
好吧,我正在使用字典,例如: 然后我想做的基本上是说,如果“用户”(一个参数)的名称前面有“@”,那么将变量前缀分配为“@”,如果他们的名称前面有“~”,则将变量前缀分配为“~”,如果他们有“ 然后我想说,如果用户的名字前面有“%”,则将前缀变量设置为“%”,否则将其设置为“”(因为这些值只有两个键)。为此,我需要一个if语句,并将其与self进行比较。声音的价值。 分配前缀变量的当前代码 目前,
“帖子”、“标题”、“内容”下面总有红线,却不知如何解决。是IntelliJ的问题,还是仅仅是我的代码的问题?