for循环的最后一次迭代不输出

时间:2016-11-16 02:31:57

标签: java for-loop

请原谅我,如果格式不正确,这是我的第一篇文章。我想看看之前是否找到了这个问题,我找不到任何遇到同样问题的人。

我正在努力学习Java而且不能为我的生活弄清楚为什么我的for循环没有输出最后一次迭代。我正在进行codeabbey的练习,并且相对容易地完成了前两个练习。但是在第三和第四个问题上,我无法在最后一次迭代中获得我的for循环输出。

我开始关注谷歌,并认为我会将我的答案与其他人进行比较。当我的代码几乎与我发现的人完全相同时,我无法理解为什么我的工作不会起作用。所以我复制了他们的代码,令我惊讶的是,当这段代码也不能在最后一次迭代时输出时,我遇到了同样的问题。

所以,这是上下文。

网站首先为您提供一个数字,即以下数字的数量。对于第三个问题,您要添加两个集合,输出总和后跟一个空格并循环遍历整个批次。对于第四个问题,它类似于第一个数字是批次中的集合数,但您要比较这两个数字并输出较低的数字。我会在这里复制我的代码以解决第三个问题,因为代码更简单。

以下是代码:

import java.util.Scanner;

public class Summation {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        int n = in.nextInt();

        for(int i = 0; i < n;i++){

            int a = in.nextInt();
            int b = in.nextInt();

            System.out.println(a + b + " ");
        }

    }

}

以下是您要复制和粘贴的输入:

3

100 8

15 245

1945 54

这是我的输出:

108 260

所以,你可以看到我们在这里错过了最后一个输出。我尝试将for循环更改为(i < (n+1) ),但仍然没有改变任何内容。任何帮助都会非常感激!

2 个答案:

答案 0 :(得分:0)

好的,所以我测试了它,并且用你的数字,一个一个地输入它就可以了。复制粘贴它们,在复制结束时再按一次。如果您没有按Enter键,扫描仪会认为您仍然添加到第二个号码,因此它不会继续直到输入被按下。

答案 1 :(得分:-1)

我会尝试使用println()作为其他人的建议,或者在程序结束时调用flush()以确保某些东西不被保存在缓冲区中而不是被写入。