首页 > 编程语言 >Java流程控制语句-for

Java流程控制语句-for

时间:2024-11-11 19:44:26浏览次数:5  
标签:语句 Java 变量 int 流程 break ++ 循环 执行

什么是for?

在Java流程控制语句中,for属于循环语句,用来进行循环执行代码块,根据条件来进行循环,直到条件不符合则退出循环,具体用法如下

for的用法

主要用法:for 

for (int i = 0; i < 5; i++) {
    System.out.println("i = " + i);
}

该代码执行的结果是:

i = 0

i = 1

i = 2

i = 3

i = 4

在for循环中,变量可以直接在for之后的()内定义,条件写在变量之后,最后写变量的增删等变化,三者用 ; 进行隔开。

尤其注意的是,执行循序并不以书写顺序为准,for循环的执行循序为:

变量初始化-->条件判断-->循环代码块-->变量增删变化

以示例代码为准:优先执行int i = 0,然后进行判断i < 5是否成立,如果成立则执行for循环内部代码,内部代码执行完毕之后,最后执行i++,对变量i进行操作,接着进行第二次循环,直接判断条件i < 5是否成立,以此类推。前边的变量初始化int i = 0仅执行一次,不会进行第二次执行。如果条件判断不成立,for循环内部代码以及对变量i的操作都不会执行。

嵌套for循环

for (int x = 1; x <= 3; x++) {
    System.out.println("x = " + x);
    for (int y = 1; y <= 3; y++) {
        System.out.println("y = " + y);
    }
}

 

该代码执行的结果是:

x = 1
y = 1
y = 2
y = 3
x = 2
y = 1
y = 2
y = 3
x = 3
y = 1
y = 2
y = 3

由上可知:for循环的嵌套,是每执行一次外循环,内循环都要从第一次执行到条件为false。当执行第二次外循环的时候,内循环的变量会重新初始化,从头开始执行。

由此,我们可以进行以下操作: 

for (int m = 1; m <= 9; m++) {
    for (int n = 1; n <= m; n++) {
        System.out.print(m + "*" + n + "=" + n * m + "\t");
    }
    System.out.println();
}

该代码执行的结果是:

1*1=1    
1*2=2    2*2=4    
1*3=3    2*3=6      3*3=9    
1*4=4    2*4=8      3*4=12    4*4=16    
1*5=5    2*5=10    3*5=15    4*5=20    5*5=25    
1*6=6    2*6=12    3*6=18    4*6=24    5*6=30    6*6=36    
1*7=7    2*7=14    3*7=21    4*7=28    5*7=35    6*7=42    7*7=49    
1*8=8    2*8=16    3*8=24    4*8=32    5*8=40    6*8=48    7*8=56    8*8=64    
1*9=9    2*9=18    3*9=27    4*9=36    5*9=45    6*9=54    7*9=63    8*9=72    9*9=81    

for嵌套最典型的例子就是九九乘法表的打印,如上所示,通过对变量n和m的条件控制,以及变量操作实现九九乘法表的打印。

特殊用法:

for后边括号内的内容并不是必须的,我们可以根据需求进行选择是否要填写,但是要注意的是,分号是不能缺少的:

1:省略变量初始化

int i = 0;
for (; i < 5; i++) {
    System.out.println("i = " + i);
}

当需要在for循环中进行判断的变量在for循环外已经进行初始化的时候,for后的变量初始化可以忽略不写。

2:省略条件判断

for (i = 0;; i++) {
    System.out.println("i = " + i);
    if (i == 5) {
        break;
    }
}

省略条件判断该用法较少,一般都以while代替,如果代码需要这么编写,一定要在循环体内进行判断,使用流程关键字进行跳出循环(流程关键字在下文有说明),否则便会造成死循环,同时要注意,在对变量操作n次后会不会使if的判断条件为true,如果不能也会造成死循环,所以此类情况出现较少。

3:省略变量操作

for (i = 0;i > 5;) {
    System.out.println("i = " + i);
    i++;
}

当for循环体内出现对变量的操作时,for后的变量操作部分可以进行省略,防止对变量进行二次操作,导致条件判断出现问题。反之同样,如果省略了for后边的变量操作,则必须要在循环体内进行变量操作,否则会因为变量不更改,条件一直为true陷入死循环。

4:其他

特殊的是,for循环的三个部分并不是仅能省略一个,是可以一次省略两个甚至三个,但是用途极少,便不再进行演示,如果有此类情况,只需要确保自己的代码符合要求,不会造成死循环即可。

拓展 

1:流程关键字

(1):break

break,用于switch和循环语句中,可以打破switch和循环执行,但是要注意,break能且仅能打破一层,如果是嵌套循环,在内循环中break,则只能打破内循环,不会打破外循环。

(2):continue

continue,只能在循环语句中使用,意味跳过本次循环执行下一次循环,不会打破循环,只会进行跳过。

两者区别:

break是破坏循环,使循环在执行到break后,不论循环内break后边有什么都不再执行,也不会进行下以此判断;而continue是跳过循环,仅仅是跳过一次循环,跳过后,循环内continue后的代码也不会执行,但是会进行下一次判断,继续执行循环。

此处不再进行演示,可以自行操作测试。

2:作用域

在Java代码中,每个变量都有属于自己的作用域,简单来说就是变量能够发挥作用的区域,每个变量的作用域是定义变量时所处的大括号内。

//外循环
for (int n = 0; n < 3; n++) {
    int a = 1;
    //内循环1
    for (int i = 1; i < 3; i++) {
        int b = 1;
    }
    //内循环2
    for (int i = 1; i < 3; i++) {
        int b = 1;
    }
}

以上述代码为例:

变量n和变量a的作用域都是外循环,只要是在外循环中,变量n和变量a都可以发挥作用。两个内循环中都定义了变量i和变量b,但是并没有产生冲突,所以变量i和变量b分别作用在内循环1和内循环2中,也就是被定义时所在的大括号内;

特殊的,在for后()内定义的变量作用域是for循环内部,而不是for所在的大括号,以内循环1定义的变量i为例,它的作用域是内循环1,而不是外循环。

标签:语句,Java,变量,int,流程,break,++,循环,执行
From: https://blog.csdn.net/loser_mine/article/details/143691265

相关文章

  • 使用ob_tools包收集分析oceanbase数据库oracle租户缓慢sql语句
    概述1、手册目的:本手册旨在提供一种系统化的方法论,以便发现和分析慢SQL语句。通过使用ob_tools包,收集和分析在交付期间,应用程序在不同场景下进行压测时所产生的慢SQL语句,从而实现性能调优和优化建议。2、文档内容:本手册包含以下几个主要部分:1.ob_tools包内存储过程和函数介......
  • 算法:LeetCode448_找出所有数组中消失的数字_java实现
    packagecom.leetcode;importjava.util.*;/***LeetCode448FindDisappearedNumInArr:找出所有数组中消失的数字*/publicclassLeetCode448FindDisappearedNumInArr{/***方法1.hashset,找出没出现的数字*/publicstaticList<Integer>findD......
  • Java List——针对实习面试
    目录JavaListJavaList的三种主要实现是什么?它们各自的特点是什么?JavaList和Array(数组)的区别?JavaList和Set有什么区别?ArrayList和Vector有什么区别?什么是LinkedList?它与ArryList有什么区别?什么是ArrayList扩容机制?JavaListJavaList的三种主要实现是什么?它们各......
  • 标题:Windows系统启动流程
      Windows的启动过程包括以下几个阶段: 一,启动自检阶段 这个阶段主要是读取 BIOS ,然后内存,CPU,硬盘,键盘等设备进行自检。这个阶段在屏幕上显示就是自检的那些打印信息。在打开计算机电源时,首先开始电源启动自检过程。在BIOS中包含一些基本的指令,能够帮助计算机在没有......
  • Java灵魂拷问13个为什么,你都会哪些?
    大家好,我是V哥。今天看了阿里云开发者社区关于Java的灵魂拷问,一线大厂在用Java时,都会考虑哪些问题呢,对于工作多年,又没有大厂经历的小伙伴不妨看看,V哥总结的这13个为什么,你都会哪些?先赞后看,绝不摆烂。V哥推荐:2024最适合入门的JAVA课程1.为什么禁止使用BigDe......
  • java整合sse
    目录sse工作原理 SSE的优缺点优点:缺点:Servlet方式的基本逻辑SSE与WebSocket的对比示例代码总结sse工作原理SSE的工作原理基于HTTP协议,它通过以下几个步骤完成:客户端请求:客户端通过GET请求来开启SSE通道。客户端的请求必须设置适当的请求头,告诉服......
  • 深入理解Java对象结构
    一、Java对象结构实例化一个Java对象之后,该对象在内存中的结构是怎么样的?Java对象(Object实例)结构包括三部分:对象头、对象体和对齐字节,具体下图所示1、Java对象的三部分(1)对象头对象头包括三个字段,第一个字段叫作MarkWord(标记字),用于存储自身运行时的数据,例如GC标志位......
  • Java-关于final关键字不得不知道的几大特点
    final-最终的修饰类:表示类不可被继承修饰方法:表示方法不可被子类覆盖,但是可以重载修饰变量:表示变量一旦被赋值就不可以更改它的值。(1)修饰成员变量如果final修饰的是类变量,只能在静态初始化块中指定初始值或者声明该类变量时指定初始值。如果final修饰的是成员变量,可......
  • Python基础(1):初识python、环境配置、数据类型、循环语句
    简介:python是一个解释性、编译性、互动性和面向对象的脚本语言python是一种解释性语言:开发过程中没有了编译环节python是一种交互式语言:意味着可以在cmd窗口输入python,>>>后直接执行代码Python是面向对象的语言:意味着python支持面向对象的风格或代码封装在对象的编程技......
  • Java流程控制-break,continue,goto
    breakcontinuegotobreakbreak在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句(break语句也在switch语句中使用)代码:publicstaticvoidmain(String[]args){inti=0;while(i<100){i++;......