错误原因:var可能没有初始化
用户应该将值输入到x和y,如果x大于5,并且当y = 0时,则z应该等于x + y。但是,当我编译它给我一个错误,说z可能没有被初始化。错误原因:var可能没有初始化
import java.util.Scanner; public class add {
public static void main(String[] args){
Scanner input = new Scanner (System.in);
System.out.print("Enter a value for x");
int x = input.nextInt();
System.out.print("\nEnter a value for y ");
int y = input.nextInt();
int z;
if (x > 5){
if (y == 0)
z = x + y;
System.out.println("The answer is " + z);
}
else
System.out.println("The answer is only" + x);
}
}
回答:
由于你没有使用大括号如果条件,你的z不会被初始化。
要解决这样的问题,请务必记住,如果您正在计算某些具有整型变量的值,请使用某个值初始化它们(这里,0是最好的值)。
然后,您可以在代码中的任何位置访问该变量,而不会出现任何初始化错误。
为了摆脱这个问题,你有两种方式
方式一:
只是简单地初始化变量z,如:
int z=0;
方式二:
试图把大括号如果条件如:
if (y == 0){ z = x + y;
System.out.println("The answer is " + z);
}
回答:
有一种情况z
不会被初始化的执行路径,而是试图将其打印出来。如果x
大于5
,但y
不是0
,则z
未初始化,但打印时请参考z
。
使用大括号来创建你内心if
语句中的内部块,所以z
如果它初始化只引用:
if (x > 5){ if (y == 0) {
z = x + y;
System.out.println("The answer is " + z);
}
}
此外,适当的缩进有助于识别视觉什么是块的一部分,什么不是。
回答:
你的 '如果' 语句是一种误导:
if (y == 0) z = x + y;
如果Y = 0!?在这种情况下,z不会被初始化。
下一行
System.out.println("The answer is " + z);
并不适用于y == 0的声明,因为你没有括号{}。
你大概意思写的东西,如:
if (x > 5) { if (y == 0) {
z = x + y;
System.out.println("The answer is " + z);
}
}
注意 “{” if语句之后。
回答:
无论是什么,您都需要向编译器保证z
将得到一个值。
声明时可能需要为其分配默认值。
东西沿着这些路线:
int z = 0; // just an example
回答:
INT z的任何值,尝试代码在底部然后给它一个为0或input.nextInt(); int z = 0; 或 int z = input.nextInt();
以上是 错误原因:var可能没有初始化 的全部内容, 来源链接: utcz.com/qa/260183.html