我是Java的初学者,所以请不要对我太苛刻。我试图找到问题的解决方案但到目前为止还没有管理。长话短说,我想制作一个会增加数字1-1000的程序,并且一旦总和达到3000就应该停止添加。另外,我应该打印它停止的数字(我之前的“i”的最后一个值)循环停止休息)。这是我的尝试,但不起作用:
public class JavaApplication2018
{
public static void main(String[] args)
{
int sum = 0;
for (int i = 1; i < 1000; i++)
{
sum = sum + i;
if (sum == 3000)
{
System.out.println(i);
break;
}
}
System.out.println(sum);
}
}
答案 0 :(得分:3)
如果你改变你的程序,你会发现不可能执行这部分中包含的代码:
if (sum == 3000) {
System.out.println(i);
break;
}
,因为这些数字的sum
不可能等于 3000.您可以通过在每次迭代后添加一行打印实际总和来检查它:
public class JavaApplication2018 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
sum = sum + i;
System.out.println(sum); // this line is added just to print actual sum value
if (sum >= 3000) { // you need to change this operator from ">" to ">=" to make the code inside the if statement execute
System.out.println(i);
break;
}
}
System.out.println(sum);
}
}
打印的数字:
...
2850
2926
3003
如果您希望循环在之前中断导致超过3000的迭代,那么您可以将if语句更改为:
if ((sum + i + 1) > 3000) {
System.out.println(i);
break;
}
现在输出:
76
2926
答案 1 :(得分:3)
您好,也许您可以进行2次小修改:
System.out.println(“i =”+ i +“; sum =”+ sum);
所以你可以看到:
i =75; sum = 2850
i =76; sum = 2926
i =77; sum = 3003
答案 2 :(得分:2)
我无法评论因为我没有足够的声誉,但如果你想让它在3000之前停止,
public class JavaApplication2018
{
public static void main(String[] args)
{
int sum = 0;
for (int i = 1; i < 1000; i++)
{
sum = sum + i;
if (sum >= 3000)
{
sum=sum-i;
System.out.println(i-1);
break;
}
}
System.out.println(sum);
}
}
当你到达3003时,得到sum = 3003- i(3003之前系列中的最后一个数字)和i = i-1:)
祝学习Java好运
答案 3 :(得分:0)
public static void main(String[] args)
{
int sum = 0;
for (int i = 1; i <= 1000 && sum <= 3001; i++)
{
sum = sum + i;
if (sum == 3000)
{
System.out.println(i);
}
}
System.out.println(sum);
}