//错在你在while循环中的IF逻辑判断有问题造成的,如下是我修改过的,达掘漏闭到你要的效果
import java.util.Scanner
public class text2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in)
System.out.print("行数:")
boolean ischoice = true
int a = 0
while (ischoice) {
if (input.hasNextInt()) {
a = input.nextInt()
ischoice = false
} else {
/* 该处的逻辑有误,这是我稍作修改的
你输入有误时ischoice = false必须是假的,不然会进入死循环*/
ischoice = false
input = new Scanner(System.in)
System.out.println("你输入判裂的值不是数字,请输入数字")
ischoice = true
}
}
for (int i = ai >搜此 0i--) {
for (int j = ij >0j--) {
System.out.print("*")
}
System.out.println("")
}
}
}
解释如下:所谓循环就是让计算机重复执行一段代码;
循环的核心有两个部分:循环控制、循环体;
循环控制部分的循环结束条件如果永远成立,将会导致一直循环,俗称地死循环逗;
上面的程返慎序:最后的分号,表示循环体颤世衡为空,是空循环;茄做括号中的两个分号之间是放循环结束条件的,这里也是空,等价于循环条件永远成立。
for( )的循环条件永远成立,所以导致死循环。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)