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

来源:4-15 编程练习

龙王大毛球

2019-02-26 09:57

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回答

  • 张小白菜
    2019-02-26 10:28:45
    已采纳


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

    张小白菜

    嗯,对的

    2019-02-26 13:16:45

    共 2 条回复 >

  • 龙王大毛球
    2019-02-26 10:02:43

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

Java入门第一季(IDEA工具)升级版

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

1162891 学习 · 17550 问题

查看课程

相似问题