请教大神一道题

来源:4-9 Java循环语句之 for

qq_明_5

2016-03-17 15:06

我想把这个程序用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回答

  • 依然狠特别
    2016-03-17 15:38:03
    已采纳

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

    依然狠特别 回复qq_明_5

    客气。。。

    2016-03-17 16:10:07

    共 2 条回复 >

  • 依然狠特别
    2016-03-17 15:30:55

    题目如果是想将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);

  • 谢凌宇
    2016-03-17 15:22:45

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

  • qq_明_5
    2016-03-17 15:22:09
    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的中括号外,

    苏小演 回复qq_明_5

    放在括号里面,只有能被3整除的才求和,不满足就不就和。放在括号外面,不管能不能被3整除都要求和,这样就不对了。

    2016-03-21 09:25:17

    共 3 条回复 >

Java入门第一季(IDEA工具)升级版

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

1165172 学习 · 17581 问题

查看课程

相似问题