如何使用在块if
外的语句中声明的变量if
?
if(z<100){
int amount=sc.nextInt();
}
while(amount!=100)
{ //this is wrong.it says we cant find amount variable ?
something
}
如何使用在块if
外的语句中声明的变量if
?
if(z<100){
int amount=sc.nextInt();
}
while(amount!=100)
{ //this is wrong.it says we cant find amount variable ?
something
}
的范围amount
绑定在花括号内,因此您不能在外面使用它。
解决方案是将其置于 if 块之外(请注意,amount
如果 if 条件失败,则不会分配):
int amount;
if(z<100){
amount=sc.nextInt();
}
while ( amount!=100){ }
或者您可能打算将 while 语句放在 if 中:
if ( z<100 ) {
int amount=sc.nextInt();
while ( amount!=100 ) {
// something
}
}
为了amount
在外部范围内使用,您需要在if
块外声明它:
int amount;
if (z<100){
amount=sc.nextInt();
}
为了能够读取它的值,您还需要确保在所有路径中都为其分配了一个值。您还没有展示您想要如何执行此操作,但一种选择是使用其默认值 0。
int amount = 0;
if (z<100) {
amount = sc.nextInt();
}
或者更简洁地使用条件运算符:
int amount = (z<100) ? sc.nextInt() : 0;
你不能,它只限于 if 块。要么让它的范围更可见,比如在 if 之外声明它并在该范围内使用它。
int amount=0;
if ( z<100 ) {
amount=sc.nextInt();
}
while ( amount!=100 ) { // this is right.it will now find amount variable ?
// something
}
在此处检查有关 java 中的变量范围