java无法退出do while循环,即使表达式为false
import java.util.*;
public class number_guassing_game{
private static int a = 0;
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int number=(int)(Math.random()*100+1);
int count=0;
boolean flag = true;
do {
int a = in.nextInt();
count+=1;
if(a>number) {
System.out.println("smaller!");
}else if(a<number) {
System.out.println("bigger!");
}
}while(a != number);
System.out.println("congratulations!"+" You have guessed "+count+" times!");
}
}
显然答案是48,但它没有循环并打印表达式
# 1 楼答案
循环条件
没有看到读取输入的局部变量:
它看到初始化为
0
的静态变量永远不会改变:因此,循环永远不会终止
你应该改变
到
哦,没有理由
a
成为static
。它可以是main
方法的局部变量,只要它在循环之外(和之前)声明