黑马程序员技术交流社区

标题: 帮忙看下这段求100以后偶数的小程序哪里错了 [打印本页]

作者: 疯子的昨天    时间: 2013-11-5 23:41
标题: 帮忙看下这段求100以后偶数的小程序哪里错了
class Evo
{   public static void main (String[] args){

         for(int i=1;i<=100;i++){if (i%2==0) ;System.out.println("i="+i);}
             }

}                           帮忙看下这段求偶数的小程序哪里错了我打印出来是1到100的整数。
                        另外解释一下在JAVA中, =和==有什么区别。 为什么不能写i%2=0 帮忙看下解决下
谢谢


作者: 雨的印记yp    时间: 2013-11-6 00:03
1.if条件语句后面不要有分号,即:  if (i%2==0) System.out.println("i="+i);
2.在java中,=是赋值运算符,例如 int x = 3;   把3赋给x.
                 ==相当于数学中的=,判断两个数是否相等或这两个对象是否是同一个对象。
作者: /yhh大雁/zhh    时间: 2013-11-6 09:06
你的if条件之后加了分号了,所以你的if条件不能控制打印语句。
   =是赋值,==是判断是否相等
作者: Janloinge    时间: 2013-11-6 12:14
雨的印记yp 发表于 2013-11-6 00:03
1.if条件语句后面不要有分号,即:  if (i%2==0) System.out.println("i="+i);
2.在java中,=是赋值运算符 ...

class Evo{   
        public static void main (String[] args){
                int sum=0;
                for(int i=1;i<=100;i++){
                   if (i%2==0){
                 sum+=i;       
                System.out.print(i);
       }
       if(i!=100){
                System.out.print("+");
       }
    }
    System.out.println("="+sum);
  }
}
作者: 疯子的昨天    时间: 2013-11-6 12:26
看到了大家的回复 谢谢 2楼解答的 很专业。 谢谢
作者: RuntimeError!    时间: 2013-11-6 12:39
如果LZ要的是打印100以后偶数的程序的话 楼上都写错了。。
应该这样。。。 注意 这个是个死循环程序。。运行时可以Ctrl+C强制停止。而且 循环最好要用while();
= 是右边赋值到左边变量  ==是判断左右两边的值是否相等 。那么,后面为什么不能写 i%2 = 0的问题就应该清楚了
希望对LZ有多帮助
附:改过的程序 用for循环写的
   
class Even
{
        public static void main(String[] args)
        {
         //由于打印100后的程序 所以初始值设到101,条件直接写true也行 原因是 需要哦死循环来无限输出
                for(int i=101; i>=100; i++)
                {
        //判断是否为2的倍数  即模2等于0
                        if(i%2 == 0)
                                System.out.println(i);
                }
        }
}


下面是用while以及修改过的代码
//输出偶数其实就是102开始 自增2输出
class Even
{
        public static void main(String[] args)
        {
                int i=100;
                while(i > 0)
                {
                        i += 2;
                        System.out.println(i);
                }
        }
}


作者: 疯子的昨天    时间: 2013-11-6 13:40
对于这个打印语句的位置问题。我还是有些迷糊。后面我做了一个程序。1到100之间偶数求和的这么一个程序。class Evo{
    public static void main (String[] args){
     int sum=0;
     for(int i=0;i<=100;i++){ if (i%2==0 ) ;
      
sum+=i;
      


}
   
System.out.println("sum="+sum);




}




} 我知道我这个程序肯定是错的。 但是这个打印语句究竟应该放在那里? 望解答。
作者: 皇凤伟    时间: 2014-7-1 21:18
=是赋值  ==是判断  
作者: Adjin    时间: 2014-7-3 19:21

class Evo
{   
        public static void main (String[] args)
        {

    for(int i=1;i<=100;i++)
                {
                        if (i%2==0)//;//第一处错误,if后面没有";"
                        System.out.println("i="+i);
                }
        }

}
你是想打印1-100里面的偶数吧?
你在if()后面加了个";"分号,那么if判断完后,就执行了个";"到这里判断条件就结束了,然后接着往下执行,就是System这条语句了,所以把100个书全部打印出来了,使用if的时候if()应该没有分号的.
刚开始学习的时候建议把if判断后成立执行的{}放进去,一条语句也放进去.
==这个是用来比较的,会产生true或者false两种结果;=是用来给变量赋值的.
作者: 朱艺丹    时间: 2014-7-4 22:31
来观摩一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2