错误原因: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

回到顶部