请原谅我,如果格式不正确,这是我的第一篇文章。我想看看之前是否找到了这个问题,我找不到任何遇到同样问题的人。
我正在努力学习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) )
,但仍然没有改变任何内容。任何帮助都会非常感激!
答案 0 :(得分:0)
好的,所以我测试了它,并且用你的数字,一个一个地输入它就可以了。复制粘贴它们,在复制结束时再按一次。如果您没有按Enter键,扫描仪会认为您仍然添加到第二个号码,因此它不会继续直到输入被按下。
答案 1 :(得分:-1)
我会尝试使用println()作为其他人的建议,或者在程序结束时调用flush()以确保某些东西不被保存在缓冲区中而不是被写入。