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

if(i%3!=0)后面加“;“”的问题!

public class HelloWorld { 

    public static void main(String[] args) {

 int sum = 0; 

 for (int i = 1;i<=100;i++) {

 if(i % 3 != 0);{ 

 sum = sum + i;

 } 

 } System.out.println("1到100之间不能被3整除的数之和为:" + sum);

}

运算结果为5050. 我想知道我加这个;分号起了什么作用啊。为什么就是把if的条件部分直接跨过去了啊

正在回答

2 回答

加了; if 和{}就没关系了,可以这样写if(i % 3 != 0)sum = sum + i; 不能换行


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

weixin_慕前端0359093 提问者

好的谢谢哦,我去试试
2019-09-06 回复 有任何疑惑可以回复我~
#2

LTrewin

可以换行,if后面不加{},只执行下面语句的第一句。
2019-09-06 回复 有任何疑惑可以回复我~
#3

weixin_慕前端0359093 提问者 回复 LTrewin

确实可以,那这个大括号可以省略啦,什么情况下必须加{}。
2019-09-06 回复 有任何疑惑可以回复我~
#4

LTrewin 回复 LTrewin

如果条件成立的话
2019-09-06 回复 有任何疑惑可以回复我~
#5

weixin_慕前端0359093 提问者 回复 LTrewin

我自己尝试下把for改成do...while循环,可是试了多好都没成功,拜托能不能帮我改一个发给我看看哦,我才学不久
2019-09-06 回复 有任何疑惑可以回复我~
#6

LTrewin 回复 weixin_慕前端0359093 提问者

语句多于一句的时候啊,比如说如果条件成立要做好几件事,那么就要用{},{}相当于把多个语句打包成一个整体。
2019-09-06 回复 有任何疑惑可以回复我~
#7

weixin_慕前端0359093 提问者 回复 LTrewin

受教受教!
2019-09-06 回复 有任何疑惑可以回复我~
#8

LTrewin 回复 weixin_慕前端0359093 提问者

do { count++; }while((num /= 10) > 0); System.out.println("它是个"+count+"位的数!"); do...while是先执行再判断,看条件吧,如果用while,num恰巧为个位数的话肯定不满足(num /= 10) > 0,循环就不会执行,直接输出count的话就是0,所以要解决个位数无法进入循环的问题,就先执行一次循环,让count++一次再判断;但是这种情况do...while并不好用,因为判断条件有更好的算法。
2019-09-06 回复 有任何疑惑可以回复我~
#9

weixin_慕前端0359093 提问者 回复 LTrewin

public class jissss { public static void main(String[] args) { int sum=0; int i=1; do { if(i%3!=0)sum=sum+i; }while(i<=100); i++; } System.out.println("1到100之间不能被3整除的数之和为:" + sum); } 你帮我看看这个程序。我是用Eclipse自己编的,就提示我最后一句好几个错误
2019-09-06 回复 有任何疑惑可以回复我~
#10

LTrewin 回复 weixin_慕前端0359093 提问者

2个错误 1.首先System.out.println("1到100之间不能被3整除的数之和为:" + sum);这句,不能放在main函数外面,你把输出语句写到函数外面肯定报错; 2.第一个错误改正了应该就不会报错了,第二个错误在你函数内,i++不能放在循环外面呀,放循环外面循环就永远结束不了,执行完if(i%3!=0)sum=sum+i;这句就要执行i++,你把i++放do while外面是永远执行不到的;你的算法应该也有问题,我没验证答案正误,你自己验证下。
2019-09-06 回复 有任何疑惑可以回复我~
#11

慕工程0123645 回复 weixin_慕前端0359093 提问者

循环里面只有单个语句的时候,可以不加{}。
2019-09-25 回复 有任何疑惑可以回复我~
查看8条回复

;的作用就是表示这句结束,通常if的格式为if(...){...},这是一个整体,你在()后面加;相当于结束if,{}里的内容变成独立的语句,与if()脱离关系,所以不会按()里的条件判断。

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

weixin_慕前端0359093 提问者

可以这么理解么。就是说假如if()成立了,就执行{}里的内容么
2019-09-06 回复 有任何疑惑可以回复我~
#2

LTrewin 回复 weixin_慕前端0359093 提问者

是这样的
2019-09-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

if(i%3!=0)后面加“;“”的问题!

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