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

请教大神一道题

我想把这个程序用do....while写出来,应该怎么做?求大神指教。

public class Test{

    public static void main(String [] args){

    int a=0,b=1;

    do{

            a=a+b;

          if(b%3!=0){

            a=a+b;

            b++;

}    

}        while(b<=100);

            System.out.println(a);

}

}

正在回答

4 回答

b++是你循环继续的条件,如果写道if语句里边的话,当你碰到第一个能够整除3的数时候(第一个数是3),if语句判断条件不成立,则不执行后边大括号里边的语句,此时你的b=3,while循环判断b<100(b=3),则进行下一轮循环,碰到if语句时还是跳过不执行,代码就陷入了死循环。

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

qq_明_5 提问者

非常感谢!谢谢各位大神的解答。明白了
2016-03-17 回复 有任何疑惑可以回复我~
#2

依然狠特别 回复 qq_明_5 提问者

客气。。。
2016-03-17 回复 有任何疑惑可以回复我~

题目如果是想将100以内除了能被3整除的数以外所有数相加,输出最终结果的话,下面的代码可以看看。。

 int sum=0;
  int b=1;
  do
  {
   if(b%3!=0)
   {
   // System.out.println("b="+b);        //作为检验的语句
    sum+=b;
   }
   ++b;
  }while(b<=100);
  System.out.print("最终的结果是:"+sum);

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

这不就是用do……while写的吗?

0 回复 有任何疑惑可以回复我~
public class Test {
	public static void main(String[] args){
		int a=0,b=1;
		do{
			if(b%3!=0){
				a=a+b;
			
			}	b++;
		}while(b<=100);
		System.out.println(a);
	}
}

误打误撞写出来了..求解释?为什么a=a+b要写在if里面的中括号内;

为什么b++要写在if的中括号外,

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

谢凌宇

b++;是迭代语句啊。放在中括号里面当b%3=0的时候不就不执行了么
2016-03-17 回复 有任何疑惑可以回复我~
#2

qq_明_5 提问者 回复 谢凌宇

大哥,您的解释我不是很明白,能否再写明白点?当然如果您嫌麻烦就算了,我再琢磨琢磨..
2016-03-17 回复 有任何疑惑可以回复我~
#3

苏小演 回复 qq_明_5 提问者

放在括号里面,只有能被3整除的才求和,不满足就不就和。放在括号外面,不管能不能被3整除都要求和,这样就不对了。
2016-03-21 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165465    人
  • 解答问题       17585    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

请教大神一道题

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