![](/img/trans.png)
[英]How could the following Java library code ever exit the while(true) loop?
[英]How does this while(true) loop ever exit?
package hi;
import java.util.Scanner;
class hi {
/**
* www.instanceofjava.com
*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter a binary number: ");
int binarynum = in.nextInt();
int binary = binarynum;
int decimal = 0;
int power = 0;
while (true) {
if (binary == 0) {
break;
} else {
int tmp = binary % 10;
decimal += tmp * Math.pow(2, power);
binary = binary / 10;
power++;
}
}
System.out.println("while is false");
System.out.println("Binary=" + binary + " Decimal=" + decimal);
}
}
我不明白while循環如何結束。 當將在條件while
成為false
?
退出循環有兩種方法:
通過條件在循環的頭部來評估為false。
使用分支語句,特別是使用break
或return
。
在您的情況下,循環頭中的條件始終為true
,因此這絕不會導致循環退出。
但是,您有一個break
語句,當binary == 0
計算為true
,將立即執行該語句。 break
將退出循環。
您可能需要閱讀分支語句 。
在每次迭代中,您都將二進制數除以10
來減少二進制數。 因此,最終在某些迭代之后,binary的值變為0
。 因為,您在每次迭代的開始都使用條件:
if (binary == 0) {
break;
}
由於其中包含break
語句,因此此處的循環終止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.