黑马程序员技术交流社区

标题: if ( i%2 != 0 ) 和 if( i%2==1) 区别 [打印本页]

作者: 谢永烽    时间: 2014-12-2 21:29
标题: if ( i%2 != 0 ) 和 if( i%2==1) 区别
/*
实现功能:求 1 到 10 之间的所有偶数的和
*/


class  BreakDemo
{
        public static void main(String[] args)
        {
                 int sum =0;//定义一个变量 sum 保存累加值
                 for (int i=1;i<=10 ;i++ ) //定义一个变量 i 保存 1 到 10 之间的整数,
                 {
                         if (i%2 ==1) //循环遍历并进行判断,如果 i 不能被 2 整除,
                         {
                                  continue; //继续执行下一次循环,否则进行累加求和。
                         }
                         sum = sum+i;
                 }
                 System.out.println("1 到 10之间的所有偶数的和。"+sum);
                        
        }
}



就想问下 if ( i%2 != 0 ) 和 if( i%2==1) 区别
i除2余0 i除2余1  
前面个是非偶数 后面个是奇数  这些是网上看的答案, 能给我再剖析下嘛?

作者: jinjiamao    时间: 2014-12-2 21:29
i%2都是取余,但是取余的结果与i的正负是有关的,例如-7%2 等于-1, 第一个是表示非偶数成立,但是第二个表示奇数则不成立
作者: JRT    时间: 2014-12-3 08:33
负数也可以玩取余操作啊,头一回听说
作者: sadfgood    时间: 2014-12-3 13:32
:)%用于取余。呵呵
作者: 谢永烽    时间: 2014-12-3 14:33
sadfgood 发表于 2014-12-3 13:32
%用于取余。呵呵

我知道是取余数的操作,就是如果有个 图解就更好了,现在已经理解差不多  
作者: 中国好熊猫    时间: 2014-12-3 20:54
同1楼说的 , i 可以为负数 , 这时取余就不是0了 , (有拾人牙慧嫌疑 , 逃 ~)
作者: 谁想去飞    时间: 2014-12-6 10:27
% 表示取模  /  这个表示取余数  例如  3%4 =3   3/4 =1
作者: lwj123    时间: 2014-12-6 13:56
JRT 发表于 2014-12-3 08:33
负数也可以玩取余操作啊,头一回听说

可以啊,写一个demo试试就知道啦
作者: Dark_Knight    时间: 2014-12-8 00:30
学习到了
作者: c91764000    时间: 2014-12-8 22:54
围观!学习
作者: lby369    时间: 2014-12-15 21:59
在正数范围内效果都是一样的呀。
作者: 夜空中的星    时间: 2014-12-18 20:28
一个是取偶数,一个取奇
作者: bei    时间: 2014-12-20 17:18
%是取余啊,怎么看上面有说不是的




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