Issue with Endless nested for-loops in do-while loop in java
我正在为我的高中成绩编写一个实验室代码。SCI。类。该程序的目标是从一个文件中读取数据,一次一个整数,并打印一个倒三角形。
数据是一个txt文件,格式为:3 3 7 4
然后我把
它应该打印一个倒三角形,顶行为3,每一行的星号少一个(同样,我不知道如何格式化它)。我试过了,但没用)。如果int为3,则顶行为3;如果int为7,则顶行为7等。
我不知怎么地陷入了一个嵌套的for循环中,尽管我有一个递减操作符,它最终应该使循环终止,但是它没有。你会看到完全的怪异。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | public class Triangle2_PR31 { public static void main(String[] args) throws IOException { Scanner triScan = new Scanner(new File("pr31.dat"));//reads file int a = triScan.nextInt(); System.out.println(a);//prints number for verification int b;//instantiate do { //a = triScan.nextInt(); for(int x = 1; x<=a; x--)//main for-loop { for(b = a; b>=0; b--)//nested for-loop to print asterisks { System.out.print("*"); System.out.println(b);//print to see what happened to b } System.out.println(b);//print to see if loops gets out here a--;//decrease a so loop eventually terminates //Doesnt get out here } } while(triScan.hasNext()); triScan.close(); } } |
当编译器到达嵌套for循环中的docx1(2)行时,在我手动终止程序之前,它会一直变为负50000,为了好玩,我让它变为-200000。我不明白为什么它不简单地终止。我盯着Eclipse看了10分钟,尝试了各种各样的东西,但我不知道出了什么问题。
您的主for循环是以与a减少相同的速率减少x,因此x永远不会大于a,从而导致无限for循环。
您在第一个"for"中有此评估:
"x"总是小于a。
必须是没有双引号的