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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马个了黑_邓 中级黑马   /  2014-10-19 13:55  /  1538 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class ZhiShu {

        public static void main(String[] args)
        {

                boolean b = false;     
      for(int x = 100;x<=999;x++)
      {
              for(int y=2;y<=(x-1);y++)
              {
                      if(x%y==0)   
                      {
                              b = false;  
                            break;  
                      }
                      else
                      {
                              b=true;   
                      }
                             
              }
              if(b==true)              //就是这里
                      {
           
                      System.out .print(x+"\t");  
                      }
            }            
     }
}

代码如上,朋友说这里 if(b==true)   只用写if(b)就行,问他他也解释不了,有没大神帮忙解释下呀

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 淡定

查看全部评分

4 个回复

倒序浏览
因为你的b是boolean类型的嘛,不是ture就是false,当b为ture时,b==ture为真,if(b==ture)就相当于if(ture),条件为真,循环当然可以执行。

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
陌上阳光 发表于 2014-10-19 14:17
因为你的b是boolean类型的嘛,不是ture就是false,当b为ture时,b==ture为真,if(b==ture)就相当于if(ture) ...

但是b也可以是false呀,如果直接写b,它怎么知道b为true时进去还是false进去呢
回复 使用道具 举报
马个了黑_邓 发表于 2014-10-19 14:35
但是b也可以是false呀,如果直接写b,它怎么知道b为true时进去还是false进去呢 ...

if(x==1)
意思是,如果()内计算后返回的结果是true(真) 就进行下面的计算,如果是false(假),就不进行计算.
你的b是boolean类型,本身就相当于这样计算返回的结果了..如果b是true就循环,是false就不成立,就不进行计算.

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

回复 使用道具 举报
if语句是判断结构,()中是条件表达式,而你的b是boolean类型。与 x==1不一样,x==1,赋值x再判断是否true,而b直接就能判断知否true
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马