为了账号安全,请及时绑定邮箱和手机立即绑定

想问一下,为什么将if改成while不行?

public class Shoushou {
public static void main(String[] args) {
 int sum=0;
 for(int i=1;i<=100;i++) {
  while(i%3!=0) {
   sum=sum+i;
  }
 }
 System.out.println(sum);
}
}

正在回答

4 回答

这里使用while会一直循环,所以不行,因为while后面括号中的条件如果不变的话就是一直为真,那么循环就会一直循环,中间添加break可以解决问题但是太冗余

0 回复 有任何疑惑可以回复我~

while是循环语句,if是判断语句。

0 回复 有任何疑惑可以回复我~

while语句属于循环语句,如果条件为true,则会继续判断,直到false为止,也就是说它会一直判断1%3!=0,此时的i在while判断中一直是1,显然这个条件为真,也就是说进入了死循环出不来了,你可以在whlie里面添加break,这样就达到了执行一次,跳出来一次,就不会是死循环了。

 while(i%3!=0) {
   sum=sum+i;

   breaek;
  }

0 回复 有任何疑惑可以回复我~

这个程序在i=1的时候就会一直卡在while循环这里,因为i=1,i%3一直成立,中间i的值没变过。if的话判断完一次就往后了。可以在while里面加个break;

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

想问一下,为什么将if改成while不行?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信