冬眠至上
2018-11-18 16:18
{
public static void main(String[] args) {
// 保存累加值
int sum = 0;
// 从1循环到10
for (int i = 1; i <= 10; i++) {
// 每次循环时累加求和
// 判断累加值是否大于20,如果满足条件则退出循环
if ( sum>20 ) {
sum = sum + i;
//退出循环
break;
}
System.out.print("当前的累加值为:" + sum);
}
}
}
为什么输出的十个累加值都是0,我的想法是If语句先运行,直到sum值大于20或者i值大于等于10,整个循环停止然后输出,求教
因为你的if判断为如果sum>20,则执行sum=sum+i,并退出循环,所以在执行时,if判断结果为false,永远不会执行sum求和,也不会执行break,会进入死循环,所以执行结果为"当前的累加值为0"并且一直循环这一句。
参考代码:
public class HelloWorld {
public static void main(String[] args) {
int sum=0;
for (int i =1;i<=10;i++){
if(sum>20){
break;
}
sum=sum+i;
}
System.out.println("当前的累加值为:"+sum);
}
}
根据你的代码来看,程序依次执行下来,进入for循环,每次循环都会先判断if语句是否执行,如果if语句判断 为true则执行if语句的内容,遇到break跳出循环并结束;如果if语句判断为false则不执行if语句内容,接着 执行下一语句即打印累加值sum;在进入if语句内容前,sum不会改变,sum的值一直为0,sum的值为0则if判断 不会生效,一直都不会执行if语句后面的内容。这就导致了你这个if语句等于无效的,因为根本不会有触发的 可能,整个for循环等效于只执行了打印sum的那句命令;
Java入门第一季(IDEA工具)升级版
1167144 学习 · 17968 问题
相似问题
回答 3
回答 5
回答 1
回答 2
回答 3