为了账号安全,请及时绑定邮箱和手机立即绑定

求大佬指点为何本代码中关于for循环下面的if循环仅执行了两次?

package imooc;
public class HelloWorld {	
  public static void main(String[] args){ 	  
    int num = 999;	  
    for(int count = 1;count >=0&&count <= 999999999;count++){		  
      if(num / 10 == 0){			  
        System.out.println("它是个" + count + "位的数!");			  
          break;		  
      }else{			   
         num = num / 10;		  
      }	  
    }	
  }
}

     首先我认为代码中if循环会执行三次,所以我在for循环中将变量count初始化为0,三次循环后输出“它是个3位的数!”,从而实现任务需求。然而实际运行后发现if循环仅执行两次,所以我将for循环中count变量重新初始化为1方使得程序得以输出正确结果。所以求各位大佬指点为何if执行了两次后变量num的值便满足if循环后的判断条件“num / 10 == 0”呢?谢谢指点!

正在回答

2 回答


因为num=num/10会执行两遍,第三次num/10==0,所以会满足if里面的判定条件,执行输出语句,如果count初始化为0的话,此时count==2,而此时会执行if里面的break,会跳出整个循环,所以count初始化必须为1,换句话说,else后面的语句运行了两次,if后面的语句运行了一次,而for循环仅仅执行两次。

0 回复 有任何疑惑可以回复我~
#1

龙王大毛球 提问者

了解了,若if后面的判断语句为“num == 0”的话,count可初始化为0对吧!
2019-02-26 回复 有任何疑惑可以回复我~
#2

张小白菜

嗯,对的
2019-02-26 回复 有任何疑惑可以回复我~

难道是因为if对括弧中表达式进行判断的同时已将“num / 10”的值赋给了num?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165458    人
  • 解答问题       17585    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

求大佬指点为何本代码中关于for循环下面的if循环仅执行了两次?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信