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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陶智第 中级黑马   /  2013-8-27 15:57  /  1289 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陶智第 于 2013-8-27 16:48 编辑

class  jiu
{
        public static void main(String[] args)
        {
                int a = 20;
                int i =1;
                int sum = 0;
                while(sum>=100)
                {
                        if(i%7!=0)
                                sum+=a/2;
                        else
                                sum=(sum+a)/2;
                        
                        i++;
                }
                System.out.println(i);
        }
}
这个程序那里有错?

6 个回复

正序浏览
编译没有错误,只不过,程序运行后的结果不是你预期的而已,首先sum=0,   而while循环条件是sum>=100返回值为true的时候才会执行while循环里面的代码,sum=0是不可能满足循环条件的,所以你while循环里写什么代码都没有用,根本进不去循环,你把循环条件写出sum<=100或while(!(sum>=100))就可以了,希望能帮到你
回复 使用道具 举报
本帖最后由 嵿級↘莮紸角 于 2013-8-27 18:31 编辑

  1. public class jiu{
  2.         public static void main(String[] args) {
  3.                 int a = 20;
  4.                 int i = 1;
  5.                 int sum = 0;
  6.                 while (!(sum >= 100)) {
  7.                         if (i % 7 != 0)
  8.                                 sum += a / 2;
  9.                         else
  10.                                 sum = (sum + a) / 2;

  11.                         i++;
  12.                 }
  13.                 System.out.println(i);
  14.         }
  15. }
复制代码
楼主这样编译一下试试还有错么
回复 使用道具 举报
亲,如问题已解决请将分类的“未解决”改为“已解决”。
以后的问题贴也要及时更改分类哦~
回复 使用道具 举报 1 0
打印结果为1可以正常运行.
如果报错,应该是在你编译时.javac  后面的文件名 或路径出了问题
回复 使用道具 举报
下回发帖记得把自己想要程序运行的结果贴出来,不要一句哪有错就完了,没人去猜测你的意思去

  while(sum>=100)   sum初值是零,进入while循环后,sum>=100为false 所以循环不执行,则输出i的值为1
回复 使用道具 举报
大哥,你这是求啥呢?需求都没说!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马