【问题标题】:Issue with Endless nested for-loops in do-while loop in javajava中do-while循环中无限嵌套for循环的问题
【发布时间】:2014-10-28 00:54:08
【问题描述】:

我正在为我的高中比赛编写一个实验室。科学。班级。该程序的目标是从文件中读取数据,一次一个整数并打印一个倒三角形。

数据是一个txt文件,包含:3 3 7 4(在文件中数据垂直排列,顶部为3,但由于某种原因我不能在这里格式化)

然后我将.txt 扩展名更改为.dat

它应该打印一个倒三角形,顶行为 3,并且每个连续行的星号少 1(再次,我不知道如何格式化。我试过了,但没有用)。如果 int 为 3,则顶行为 3,如果 int 为 7,则顶行为 7,依此类推。

我不知何故陷入了嵌套的 for 循环,即使我有我的减量运算符最终应该让循环终止,但它没有。你会看到完全的怪异。

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 循环中的SOP(b); 行时,在我手动终止程序之前,事情一直变为负 50,000,我让它变为 -200,000 一次是为了好玩。我不明白为什么它不简单地终止。我盯着 eclipse 看了 10 分钟,尝试了各种不同的东西,但我不知道出了什么问题。

【问题讨论】:

  • 你的第一个 for 循环应该是 x++ 的初学者
  • 真的。我没有注意到这一点。我知道它会出现在我面前。在我发布问题后,我正在处理这个问题大约一个小时,并没有注意到我有错误的操作员。

标签: java for-loop logic do-while


【解决方案1】:

您的主 for 循环以与 a 减少相同的速率减少 x,因此 x 永远不会比 a 大,从而导致无限循环。

【讨论】:

  • 很好的解释。你会因此获得 +1。
【解决方案2】:

你在第一个“for”中有这个评价:

for (int x = 1; x &lt;= a; x--)

“X”总是小于 a。

必须是for(int x = 1; x &lt;= a; x++),不带双引号。

【讨论】:

  • 是的,我在发布问题后花了一个小时来解决这个问题,但从未意识到我的操作员错误。有时我觉得自己很愚蠢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-30
  • 2015-11-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多