原始任务,但仍然...
输入一个数字并显示相同数量的星号。如果输入负数,则程序停止。
public void aster(){
Scanner sc= new Scanner(System.in);
System.out.print("Input n:");
boolean b = true;
int n = sc.nextInt();
while(b){
if (n>0) {
for (int i = 0; i < n; i++) {
System.out.print("*");
}
} else {
System.out.println("Program terminated");
b=false;
}
} // while(b)
问题是循环必须继续,直到输入负数。但它要么在第一次输入后停止,要么就像上面的代码一样,它根本不起作用。
引入变量 b 是没有意义的。设置终止循环的条件。在for循环之前,做一个检查也是没有意义的,因为 如果 n 不为正,则不会输出任何内容。
n 应该在循环本身中询问输入,程序会询问你一次 n(如果你按照你写的那样做)。试试这个,它有效: