A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© run_wind 中级黑马   /  2014-10-13 15:12  /  2058 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 run_wind 于 2014-10-13 18:32 编辑

  1. /**
  2. 循环语句的练习程序
  3. 需求:算出1+10的结果,分别用while和do while还有for
  4. */

  5. class whileDemo
  6. {
  7. public static void main(String[] args)
  8. {
  9. //while
  10. int sum=0,i=1;
  11. while(i<=10)
  12. {
  13. sum+=i;
  14. i++;
  15. }
  16. System.out.println("1+2+3+4+5+6+7+8+9+10="+sum);
  17. //do while
  18. int sum1=0;
  19. --i;
  20. do
  21. {
  22. sum1+=i;
  23. i--;
  24. }
  25. while (i>=1);
  26. System.out.println("10+9+8+7+6+5+4+3+2+1="+sum1);
  27. //for
  28. int x,sum2=0;
  29. for (x=1;x<=10;x++ )
  30. {
  31. sum2+=x;
  32. }
  33. System.out.println("1+2+3+4+5+6+7+8+9+10="+sum2);
  34. }
  35. }
复制代码


评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1

查看全部评分

17 个回复

倒序浏览
后面的do whlie那里没看明白,如果想倒着加,那就初始化i为10,还有那个 --i 是什么情况?
回复 使用道具 举报
while(i<=1)  判断写反了   改成 while(i>=1)   。 只需要1到10相加的结果。不用每次相加的和都打印。把打印语句放到循环外面去。
回复 使用道具 举报
  1. class whileDemo
  2. {

  3.         public static void main(String[] args)
  4.         {

  5.         //while

  6.         int sum=0,i=1;

  7.         while(i<=10)

  8.         {
  9.                 sum+=i;
  10.                 i++;

  11.         }
  12.         //输出语句写在循环的外面
  13.         System.out.println("1+2+3+4+5+6+7+8+9+10="+sum);


  14.         //do while

  15.         int sum1=0;
  16.         //这一个类中共享一个数据,此时i的值为11,需要先自减
  17.         --i;

  18.         do

  19.         {

  20.                 sum1+=i;

  21.                 i--;
  22.         }
  23.         //这要判断i>=1
  24.         while (i>=1);
  25.         //输出语句写在循环的外面
  26.          System.out.println("10+9+8+7+6+5+4+3+2+1="+sum1);
  27.         }
  28. }
复制代码
回复 使用道具 举报
李天富 发表于 2014-10-13 15:36
后面的do whlie那里没看明白,如果想倒着加,那就初始化i为10,还有那个 --i 是什么情况? ...

跳出第一个循环i=11
回复 使用道具 举报
里面有两处错误,对于你的问题也在代码中做了解释
  1. class whileDemo
  2. {

  3.         public static void main(String[] args)
  4.         {

  5.         //while

  6.         int sum=0,i=1;

  7.         while(i<=10)

  8.         {
  9.                 sum+=i;
  10.                 i++;

  11.         }
  12.         //输出语句写在循环的外面
  13.         System.out.println("1+2+3+4+5+6+7+8+9+10="+sum);


  14.         //do while

  15.         int sum1=0;
  16.         //这一个类中共享一个数据,此时i的值为11,需要先自减
  17.         --i;

  18.         do

  19.         {

  20.                 sum1+=i;

  21.                 i--;
  22.         }
  23.         //这要判断i>=1
  24.         while (i>=1);
  25.         //输出语句写在循环的外面
  26.          System.out.println("10+9+8+7+6+5+4+3+2+1="+sum1);
  27.         }
  28. }
复制代码
回复 使用道具 举报
同学,你这代码写的比较有创意

你第二个循环的条件写错了
因为第二个循环的变量是递减的过程,那么条件就 应该把  i <= 1 的条件  改成 i >= 1  
回复 使用道具 举报
jiangyin 发表于 2014-10-13 15:41
while(i=1)   。 只需要1到10相加的结果。不用每次相加的和都打印。把打印语句放到循环外面去。 ...

他还是说我有非法字符,但是检查了一边没错啊
回复 使用道具 举报
里面有两处错误,已做更改,并对鱼你的问题做了解答
  1. class whileDemo
  2. {

  3.         public static void main(String[] args)
  4.         {

  5.         //while

  6.         int sum=0,i=1;

  7.         while(i<=10)

  8.         {
  9.                 sum+=i;
  10.                 i++;

  11.         }
  12.         //输出语句写在循环的外面
  13.         System.out.println("1+2+3+4+5+6+7+8+9+10="+sum);


  14.         //do while

  15.         int sum1=0;
  16.         //这一个类中共享一个数据,此时i的值为11,需要先自减
  17.         --i;

  18.         do

  19.         {

  20.                 sum1+=i;

  21.                 i--;
  22.         }
  23.         //这要判断i>=1
  24.         while (i>=1);
  25.         //输出语句写在循环的外面
  26.          System.out.println("10+9+8+7+6+5+4+3+2+1="+sum1);
  27.         }
  28. }
复制代码
回复 使用道具 举报
SelonLiao 发表于 2014-10-13 16:09
同学,你这代码写的比较有创意

你第二个循环的条件写错了

排除逻辑错误,还是编译不出来
回复 使用道具 举报
代码没有任何错误,在我这能编译运行。你用的什么工具写的?如果是MyEclipse的话,含有main方法的类名必须和文件名相同才行,否则运行的时候会找不到main方法的。还有,应该把打印语句放到循环外边。。。
回复 使用道具 举报
zd12345 发表于 2014-10-13 17:06
代码没有任何错误,在我这能编译运行。你用的什么工具写的?如果是MyEclipse的话,含有main方法的类名必须 ...

嗯,我已经改正了,用的EditPlus。用但是他说的是大括号错误,但是我改了好几遍,还是不行啊,已经用的英文了
回复 使用道具 举报
run_wind 发表于 2014-10-13 16:10
他还是说我有非法字符,但是检查了一边没错啊

没问题 可以运行啊
回复 使用道具 举报
jiangyin 发表于 2014-10-13 17:29
没问题 可以运行啊

/**
循环语句的练习程序
需求:算出1+10的结果,分别用while和do while
*/

class whileDemo
{
        public static void main(String[] args)
        {
                //while
                int sum=0,i=1;
                while(i<=10)
                {
                        sum+=i;
                    i++;
                }
                System.out.println("1+2+3+4+5+6+7+8+9+10="+sum);
                //do while
                int sum1=0;
                --i;
                do
                {
                        sum1+=i;
                        i--;
                }
                while (i>=1);
                System.out.println("10+9+8+7+6+5+4+3+2+1="+sum1);
        }
}
解决了
回复 使用道具 举报
Mr.Ni 中级黑马 2014-10-13 18:19:31
15#
很有创意的代码啊
回复 使用道具 举报
run_wind 发表于 2014-10-13 16:08
跳出第一个循环i=11

这样啊,怪我没认真看。不过貌似这么做不太符合习惯,建议分成3个函数,分别定义各个函数的局部变量,这样无论是阅读还是修改都会方便很多。
回复 使用道具 举报
如果编译不了,继续看视频
回复 使用道具 举报
李天富 发表于 2014-10-13 19:03
这样啊,怪我没认真看。不过貌似这么做不太符合习惯,建议分成3个函数,分别定义各个函数的局部变量,这 ...

还没有学到函数。。。学到while do while就来写了,嘿嘿
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马