为什么要用到循环结构:

按顺序结构执行程序语句(方法或者代码块)只能被执行一次。如果要多次执行,就需要使用到循环结构(循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构)

布尔表达式:是一段代码声明,它最终只有true(真)和false(假)两个取值。最简单的布尔表达式是等式(equality),这种布尔表达式用来测试一个值是否与另一个值相同。

1、while循环

特点:先判断布尔表达式 (条件),条件为真,执行循环语句。条件为假,直接结束循环语句。

while( 布尔表达式 ) {
//循环内容
}

只要布尔表达式为true,循环体会一直执行下去。

查看示例代码


public static void main(String[] args){
int i = 10;
System.out.println("开始执行" );
//当i小于15的时候继续循环执行输出
while( i < 15 ) {
System.out.println(i+"小于15 is:"+(i < 15));
i=i+1;
}
System.out.println("循环结束" );
}

运行结果如图:

2、do…while 循环

特点: do…while 循环至少会执行一次,然后判断条件,条件为真,执行循环语句。条件为假,直接结束循环语句。

do {
//代码语句
}while(布尔表达式);

先执行代码块,然后判断布尔表达式,条件为真,则一直执行。

示例


public static void main(String[] args){
int j=0;
int i = 15;
System.out.println("开始执行" );
do{
i=i-1;
j++;
//先执行代码块
System.out.println("第"+j+"次循环:"+i+"是否大于10 is:"+(i >10)); } while( i >10 ); //当i大于10的时候继续循环执行输出
System.out.println("循环结束" );
}
 

运行结果

把初始值改一下,i=9

运行结果

9不大于10,也执行了一次

3、for循环

特点:for 循环结构比前两种循环结构更简单,for循环执行的次数是在执行前就确定的。

语法格式如下:

for(初始化; 布尔表达式; 更新) {
  //代码语句
}

关于 for 循环有几点说明:

  • 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。列如 int i=0
  • 然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
  • 执行一次循环后,更新循环控制变量。
  • 再次检测布尔表达式。循环执行上面的过程。

示例代码

public static void main(String[] args){
System.out.println("开始执行" );
/**
* int i=1 表示 初始值i=1,
* i<10 表示 当i<10时等于true执行下一次循环
* i++ 表示 执行一次循环后,更新循环控制变量 i=i+1
*/
for(int i=1;i<10;i++){
System.out.println(i+"小于10 is:"+(i<10));
}
System.out.println("循环结束");
}

结果

结论

当最后一次执行9小于10之后执行i++  ,9+1=10, 10不小于10=false跳出循环

最后还有两个关键字

break 关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

break 跳出最里层的循环,并且继续执行该循环下面的语句。

public static void main(String[] args){
System.out.println("开始执行" );
/**
* int i=1 表示 初始值i=1,
* i<10 表示 当i<10时等于true执行下一次循环
* i++ 表示 执行一次循环后,更新循环控制变量 i=i+1
*/
for(int i=1;i<10;i++){
if(i==5){
        System.out.println(i+"等于5:"+(i==5)+" 跳出整个循环");
break;
}
System.out.println(i+"小于10 is:"+(i<10));
}
System.out.println("循环结束");
}

执行结果:

continue 关键字

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。

在 for 循环中,continue 语句使程序立即跳转到更新语句。

在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

示例

public static void main(String[] args){
System.out.println("开始执行" );
/**
* int i=1 表示 初始值i=1,
* i<10 表示 当i<10时等于true执行下一次循环
* i++ 表示 执行一次循环后,更新循环控制变量 i=i+1
*/
for(int i=1;i<10;i++){
if(i==5){
System.out.println(i+"等于5:"+(i==5)+" 跳出当前循环,不执行后续代码");
continue ;
}
//跳出当前循环后没有执行该行代码
System.out.println(i+"小于10 is:"+(i<10));
}
System.out.println("循环结束");
}

结果

您想要同样的操作执行多次,,就需要使用循环结构。

Java - > for, while 及 do.while循环的更多相关文章

  1. 九天学会Java,第四天,循环结构

    变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 这次我们讲Java的循环结构.循环结构在编程中广泛使 ...

  2. IT兄弟连 Java语法教程 流程控制语句 控制循环结构1

    Java语言没有提供goto语句来控制程序的跳转,这种做法提高了程序流程控制的可读性,但降低了程序流程控制的灵活性.为了弥补这种不足,Java提供了continue和break来控制循环结构.除此之外 ...

  3. Java自学-控制流程 结束外部循环

    Java中结束外部循环 Java中如何结束外部for循环? 示例 1 : 结束当前循环 break; 只能结束当前循环 public class HelloWorld { public static ...

  4. 059 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 06 增强型for循环

    059 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 06 增强型for循环 本文知识点:增强型for循环 增强型for循环格式 案例练习增强型for循环 数组名字 ...

  5. 【java开发】分支语句、循环语句学习

    一.Java分支语句类型 if-else 语句 switch 关于if-esle语句可以拆分为三种 if语句 if(条件){语句块;} if-else语句if(条件语句){语句块;} if-else ...

  6. java分享第四天(循环)

    While循环: while(Boolean_expression){ //statements } 在执行时,如果布尔表达式的结果为真,则循环中的动作将被执行,这将继续下去,只要该表达式的结果为真 ...

  7. [转]Java 8:不要再用循环了

    以下内容为转载,没有在jdk8中测试,具体业务场景是否存在BUG或使用需要注意的地方有待测试. ------------------分割线---------------------- 正如我之前所写的 ...

  8. Java 8:不要再用循环了

    本文由 ImportNew - 进林 翻译自 deadcoderising.欢迎加入翻译小组.转载请见文末要求. 正如我之前所写的,Java 8中的新功能特性改变了游戏规则.对Java开发者来说这是一 ...

  9. Java Web学习笔记--JSP for循环

    JSP for循环 <%@ page language="java" contentType="text/html; charset=UTF-8" %&g ...

  10. JAVA基础——最简单的多重循环程序

    Java 循环语句之多重循环 循环体中包含循环语句的结构称为多重循环.三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环.在二重循环中,外层循环每执行一次,内层循环要执行一圈. 如下所示: ...

随机推荐

  1. SpringMVC返回JSON数据

    1.导入json的jar包2.在Controller类中添加 //查看用户信息 ?json //params="json"的意思是访问view这个方法的时候,必须有一个参数json ...

  2. loj2289 [THUWC 2017]在美妙的数学王国中畅游(LCT+Taylor展开)

    link 题目大意: 你需要维护一个树 每个点都有个sin(ax+b)或exp(ax+b)或ax+b 你需要维护一些操作:连边.删边.修改某个点的初等函数.询问某条树链上所有函数带入某个值后权值和或不 ...

  3. ubuntu 上的python不能解析jpeg,png?

    在安装pillow之前需要先安装以下支持包1.apt-get install libjpeg-dev libfreetype6-dev zlib1g-dev libpng12-dev2.安装pillo ...

  4. python 3中 的subprocess

    commands好像python3.6被去除了,它现在被subprocess替代了 FUNCTIONS getoutput(cmd) Return output (stdout or stderr) ...

  5. vscode 遇到设置问题

    // 控制是否在新窗口中打开文件. // - default: 除了从软件内部选择的文件 (如,从“文件”菜单选择),其他所有文件都将在新窗口中打开 // - on: 文件将在新窗口中打开 // - ...

  6. java并发包&线程池原理分析&锁的深度化

          java并发包&线程池原理分析&锁的深度化 并发包 同步容器类 Vector与ArrayList区别 1.ArrayList是最常用的List实现类,内部是通过数组实现的, ...

  7. vue框架组件之父子组件之间的通信

    1.如图看解说: 你子标签要给我父标签传递信息,你总得有个触发机制告诉我这是怎么回事对吧  要不我怎么知道你要传数据给我呢!

  8. DataFactory使用和注意,排列组合

    DataFactory使用和注意 mysql 连接ODBC开放数据库连接(Open Database Connectivity,ODBC)驱动程序 生成数据:int不能用 Build a compos ...

  9. day--38 mysql表的完整性约束总结

    表的简单查询参考:https://www.cnblogs.com/clschao/articles/9995531.html 一:单表的查询: 查询数据的本质:mysql会去本地的硬盘上面找到对应的文 ...

  10. bzoj3224 普通平衡树 splay模板

    题目传送门 题目大意:完成一颗splay树. 思路:模板题,学着还是很有意思的. 学习splay树:蒟蒻yyb 该题模板:汪立超 #include<bits/stdc++.h> #defi ...