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
?
答案 0 :(得分:2)
有两种退出循环的方法:
通过循环头部的条件求值为假。
带有分支语句,尤其是break
或return
。
在您的情况下,循环头中的条件始终为true
,因此这绝不会导致循环退出。
但是,您有一条break
语句,一旦binary == 0
评估为true
,该语句就会执行。 break
将退出循环。
您可能想阅读branch statements。
答案 1 :(得分:0)
在每次迭代中,您都将二进制数除以10
来减少二进制数。因此,最终在某些迭代之后,二进制值变为0
。因为,您在每次迭代的开始都使用条件:
if (binary == 0) {
break;
}
这里的循环由于其中的break
语句而终止。