剖析Java中的for循环

最近做for循环的题频繁出错!静下心来好好研究一下这个,吃透他!

首先是为啥要有循环?

这个简单理解,我要重复的执行一件事情,不使用循环就得频繁的写同样的东西,既麻烦也不美观,这也就是循环的好处了!

然后是for循环的语法,也就是使用

语法如下:

  for (初始化; 条件表达式; 更新表达式) {
      // 循环体
  }

初始化

最先执行的步骤
在循环开始前执行一次,用于设置循环控制变量的初始值,比如int index= 0;
可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。

也就意味着这种

  for (int index = 1;index<=10;index++){
    System.out.println("输出语句");
  }

这种

  for (int index = 1,num = 2;index<=10;index++){
    System.out.println("输出语句");
  }

哪怕是这种

  for (;;){
    System.out.println("输出语句");
  }

都是没有问题的,但是最后这种就会无限制的循环下去

条件表达式,也就是判断语句

上一步的初始化结束之后,走条件表达式,检测布尔表达式的值
如果为真,则执行循环体;如果为假,则退出循环,执行循环之后的语句

更新表达式

在每次循环结束后执行 ,用于更新循环控制变量的值,比如index++;

循环体

就是要循环的语句或者方法

执行顺序

 for (int index = 1;index<=10;index++){
   System.out.println("输出语句");
 }

拿这个举例,执行顺序可以看成下面这个样子

  1. 初始化,执行int index = 1;
  2. 判断1<=10是否为真,真走循环体,假跳出循环,走之后的语句
  3. 这里为真走循环体
  4. 然后再走更新表达式index++;
  5. 然后走判断表达式
    循环这个过程,直到表达式判断为假,跳出循环
    ... ... ...

实践出真知,拿一道题来举例

int count = 0;
for(int i = 1;i<=10;i++){
   if(i==5){
     continue;
   }
   for (int j = 1;j<=10;j++){
     if(j==5){
       break;
     }
   count++;
   }
}
System.out.println(count);

首先要明确两个语句的概念

  1. continue语句:跳过当前的循环,执行之后的循环
  2. break语句:跳出当前的循环

所以外层的循环在i = 1,2,3,4,6,7,8,9,10时都会往下走,共循环9次
内层的循环在j=5时就会跳出这个循环,所以j = 1,2,3,4,共循环4次

在嵌套循环中,外层循环走一次,内层循环走全部次数 ,所以4*9=36,count的值为36!

9.7补充

今天看菜鸟教程看到 增强for循环语法 ,主要用于数组上,语法格式如下:

  for(声明语句 : 表达式)
    {
       //代码句子
    }
  1. 声明语句 :声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
  2. 表达式 :表达式是要访问的数组名,或者是返回值为数组的方法。

这个也非常好理解,正常情况下我们用for循环打印数组每一项的值代码如下:

  int[] number = {1,2,3,4,5,6};
  for(int index = 0;index<number.length;index++){
      System.out.print(number[index]+" ");
  }

而这个所谓的增强型语法,如下:

  int[] number = {1,2,3,4,5,6};
  for (int x:number){
    System.out.print(x+" ");
  }
打赏
评论区
头像