Java 初始化变量,表示未初始化
如果有人对如何解决这个问题有任何想法,我们将不胜感激。代码在运行时出错,显示的错误消息是:“变量rr、xx、yy、zz可能尚未初始化”。我尝试了许多不同的方法,但无法使代码与rr+xx+yy+zz的结果相等。我刚开始学习java,所以我不是过于自信,我不是在忽视我做错的事情。提前谢谢你 初始化变量时,将其指定为0,这将考虑到您的代码:Java 初始化变量,表示未初始化,java,initialization,Java,Initialization,如果有人对如何解决这个问题有任何想法,我们将不胜感激。代码在运行时出错,显示的错误消息是:“变量rr、xx、yy、zz可能尚未初始化”。我尝试了许多不同的方法,但无法使代码与rr+xx+yy+zz的结果相等。我刚开始学习java,所以我不是过于自信,我不是在忽视我做错的事情。提前谢谢你 初始化变量时,将其指定为0,这将考虑到您的代码: import java.util.Scanner; class Main { public static void main(String[] args) {
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner numb = new Scanner(System.in);
int r;
int x;
int y;
int z;
int rr;
int xx;
int yy;
int zz;
boolean a1 = false;
boolean a2 = false;
boolean a3 = false;
boolean a4 = false;
System.out.println("Type four one's or zero's to convert a base 2 number to base 10. Please press enter between each one or zero: ");
r = numb.nextInt();
while (a1 == false) {
if (r == 0) {
a1 = true;
rr = 0;
} else if (r == 1) {
a1 = true;
rr = 8;
} else {
a1 = false;
System.out.println("Please enter a 1 or a 0: ");
r = numb.nextInt();
} //end else
} //end while
x = numb.nextInt();
while (a2 == false) {
if (x == 0) {
a2 = true;
xx = 0;
} else if (x == 1) {
a2 = true;
xx = 4;
} else {
a2 = false;
System.out.println("Please enter a 1 or a 0: ");
x = numb.nextInt();
} //end else
} //end while
y = numb.nextInt();
while (a3 == false) {
if (y == 0) {
a3 = true;
yy = 0;
} else if (y == 1) {
a3 = true;
yy = 2;
} else {
a3 = false;
System.out.println("Please enter a 1 or a 0: ");
y = numb.nextInt();
} //end else
} //end while
z = numb.nextInt();
while (a4 == false) {
if (z == 0) {
a4 = true;
zz = 0;
} else if (z == 1) {
a4 = true;
zz = 1;
} else {
a4 = false;
System.out.println("Please enter a 1 or a 0: ");
z = numb.nextInt();
} //end else
} //end while
int a = rr + xx + yy + zz;
System.out.println("You entered " + r + x + y + z + ", in base 10 that number is " + a);
} //end main
} //end class Main
这类似于比较空瓶子和满瓶子中的水量。这不是一个明智的比较,因为前者甚至不含水。
我希望我的类比能有所帮助。这些变量是声明的,但不是初始化的。当你做
inta=rr+xx+yy+zz时,它们没有价值代码>。你希望代码< > < <代码>之后有什么价值?我建议你用有意义的名字来命名变量。你可能想考虑使用数组和循环,以避免重复本质上相同的代码。我们还没有在课堂上被教过。谢谢你的建议!好的,谢谢!为什么要这样?只是好奇,这样我就可以为将来学习。@MichaelPennington不需要这样。事实上,在您的原始代码中,如果您这样做,a
的值将为零,这不是您想要的。这更有意义。谢谢你的解释。如果你能投赞成票并接受它,对我来说意义重大。除非它能帮助你。
int r; // You declared the variable [r] without initializing it with a valid integer value.
while (a1 == false) {
if (r == 0) {
// It is semantically and syntactically wrong to compare the value of an...
// ...undefined variable to a defined variable or a value.
a1 = true;
rr = 0;
} else if (r == 1) {
a1 = true;
rr = 8;
} else {
a1 = false;
System.out.println("Please enter a 1 or a 0: ");
r = numb.nextInt();
} //end else
} //end while
x = numb.nextInt();