if/while/do-while/for循环以及跳出循环break/return/continue

article/2025/8/29 5:30:42

       流程控制对任何一门编程语言都是至关重要的,它为我们提供了控制程序步骤的基本手段。常见对主要分为,条件语句、循环语句、跳转语句。

1、if语句

if 语句是一种判断语句。

语法:

if(条件){条件成立时执行的代码
}

if语句执行过程

if...else 语句当条件成立时,则执行 if 部分的代码块; 条件不成立时,则进入 else 部分。例如,如果一个月天数大于 30 天,则为大月,否则为小月。

语法:

if(条件){代码块1
}
else{代码块2
}

if...else语句执行过程

多重 if 语句,在条件 1 不满足的情况下,才会进行条件 2 的判断,以此向下;当前面的条件均不成立时,最终执行 else 块内的代码。

语法:

if(条件1){代码块1
}
else if(条件2){代码块2
}
...
else {代码块n
}

多重if语句

注意:如果 if(或 else if,或 else) 条件成立时的执行语句只有一条,是可以省略大括号的!但如果执行语句有多条,那么大括号就是不可或缺的。

比如:

int days = 31;
if(days > 30)System.out.println("本月是大月");
elseSystem.out.println("本月是小月");

if 语句是可以在内层进行嵌套的。嵌套 if 语句,只有当外层 if 的条件成立时,才会判断内层 if 的条件。

语法:

if(条件1){if(条件2){代码块1}else{代码块2}
}
else{代码块3
}

if的嵌套

if 语句练习:小明考了 78 分,60 分以上及格,80 分以上为良好,90 分以上为优秀,60 分以下要重考,编写源代码 ScoreJudge.java,输出小明的情况。

参考代码如下:

public class ScoreJudge {public static void main(String[] args){int score = 78;if(score >= 60){if(score >= 80){if(score >= 90){System.out.println("成绩优秀");}else{System.out.println("成绩良好");}}else{System.out.println("成绩及格");}}else{System.out.println("需要补考");}}
}

:所有的条件语句都是利用条件表达式的真或假来决定执行路径,Java 里不允许将一个数字作为布尔值使用,虽然这在 C 和 C++ 是允许的,如果要在布尔测试里使用一个非布尔值,需要先用一个条件表达式将其转换成布尔值,其他控制语句同理。

编译执行:

$ javac ScoreJudge.java
$ Java ScoreJude
成绩及格

2、switch 语句

当需要对选项进行等值判断时,使用 switch 语句更加简洁明了。比如:摇号摇到 1 的得一等奖,摇到 2 的得二等奖,摇到 3 的得三等奖,摇到其他的没有奖。

语法:

switch(表达式){case 值1:代码块1break;case 值2:代码块2break;...default:默认执行的代码块
}

当 switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配的 case 语句则执行 default 块的代码。

  • defualt 块不是必须的,默认为空。

新建一个源代码文件Draw.java

public class Draw {public static void main(String[] args){int num = 2;switch(num){case 1:System.out.println("恭喜你,获得了一等奖");break;case 2:System.out.println("恭喜你,获得了二等奖");break;case 3:System.out.println("恭喜你,获得了三等奖");break;default:System.out.println("很遗憾,下次再来");}}
}

编译运行:

$ javac Draw.java
$ java Draw
恭喜你,获得了二等奖

while 和 do-while 语句

3、while语法:

while(条件){代码块
}

while 的执行过程是先判断,再执行。

  1. 判断 while 后面的条件是否成立 ( true or false )
  2. 当条件成立时,执行循环内的代码。

然后重复执行 12, 直到循环条件不成立为止。

while的语句流程

4、 do-while 语法:

do{代码块
}while(条件);

do-while 的执行过程是先执行一次,再循环判断(所以循环内的代码至少会执行一次)。

  1. 先执行一遍循环操作,然后判断循环条件是否成立。
  2. 如果条件成立,继续执行12,直到循环条件不成立为止。

do...while的流程

 如:

int i = 0;
while(i < 100){System.out.println("I love ShiYanlou!");i++;
}
int i = 0;
do {System.out.println("I love ShiYanlou!");i++;
} while(i < 100);

练习:分别用 while 和 do-while 两种方法,编写代码,文件名为: SumOfEven.java。实现计算 1-1000 中所有偶数的和,并输出。验证一下两种方法你输出的结果是一致吗?

参考代码如下:

public class SumOfEven {public static void main(String[] args){int i1 = 1, i2 = 1;int sum1 = 0, sum2 = 0;while (i1 <= 1000){     //循环1000次if(0 == i1 % 2){   //判断是否为偶数sum1 += i1;    //将偶数加入到总数里}i1++;              //i自增1}System.out.println("用while,1到1000中,所有偶数的和为:"+sum1);do {if (0 == i2 % 2){   //在条件语句中,将数值写在前面是为了防止将==写成了=sum2 += i2;}i2++;} while(i2 <= 1000);System.out.println("用do-while,1到1000中,所有偶数的和为:"+sum2);}
}

编译运行:

$ javac SumOfEven.java
$ java SumOfEven
用while,1到1000中,所有偶数的和为:250500
用do-while,1到1000中,所有偶数的和为:250500

5、for 语句

for 语法:

for(循环变量初始化①; 循环条件②; 循环变量值操作③){循环操作④
}

for 相比 while 和 do-while 语句结构更加简洁易读,它的执行顺序:

  1. 执行循环变量初始化部分(1),设置循环的初始状态,此部分在整个循环中只执行一次
  2. 进行循环条件的判断(2),如果条件为 true,则执行循环体内代码(4);如果为 false ,则直接退出循环。
  3. 执行循环变量值操作部分(3),对循环变量的值进行修改,然后进行下一次循环条件判断(2)。

整个循环的流程可以简化为:

(1) -> [(2)->(4)->(3)] -> [(2)->(4)->(3)] -> ... => (2) 结果为 false, 退出循环。

for的流程

 例如,计算 100 以内不能被 3 整除的数之和:

    int sum = 0; // 保存不能被3整除的数之和// 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环for (int i = 1;i<=100;i++) {// 变量 i 与 3 进行求模(取余),如果不等于 0 ,则表示不能被 3 整除if (i % 3 != 0) {sum = sum + i; // 累加求和}}System.out.println("1到100之间不能被3整除的数之和为:" + sum);

练习:编写代码,文件名为: SumOfEven.java,实现计算 1-1000 中所有偶数的和,并输出。

参考代码如下:

public class SumOfEven {public static void main(String[] args){int sum = 0;for(int i = 1; i <= 1000; i++){if(0 == i % 2){sum += i;}}System.out.println("用for,1到1000中,所有偶数和为:"+sum);}
}

编译运行:

$ javac SumOfEven.java
$ java SumOfEven
用for,1到1000中,所有偶数和为:250500

6、跳转语句

break终止循环执行循环体下面的代码 
return终止循环并且退出循环所在的方法 
continue终止当前循环,进行下一次循环

break 关键字经常用在条件和循环语句中,用来跳出循环语句

continue关键字的作用是跳过循环体中剩余的语句执行下一次循环。 新建一个源代码文件Jump.java

public class Jump{public static void main(String[] args){//break 练习for(int i = 1; i <= 10; i++){System.out.println("循环第"+i+"次");if(0 == i % 3){break;}if(0 == i % 5){System.out.println("我进来了!");}}//continue练习 打印10以内的所有奇数for(int i = 1; i <= 10; i++){if(0 == i % 2) //判断i是否为偶数continue;  //通过continue结束本次循环System.out.println(i);}}
}

编译运行:

$ javac Jump.java
$ java Jump
循环第1次
循环第2次
循环第3次
1
3
5
7
9

练习:打印星期

新建一个源代码文件PrintWeek.java

你需要实现当输入 1-7 的数字时返回对应的星期:

  • 从控制台获取一个整型参数
  • 当输入数字 1 时输出今天是星期一
  • 当输入数字 2 时输出今天是星期二

以此类推

示例:

输入:1
输出:今天是星期一

提示:java.util.Scanner可以获取控制台输入。

Scanner in =new Scanner(System.in);
//获取int值
int x=in.nextInt();

 参考答案:

import java.util.Scanner;public class PrintWeek {public static void main(String[] args) {Scanner in = new Scanner(System.in);//获取int值int x = in.nextInt();switch (x) {case 1:System.out.println("今天是星期一");break;case 2:System.out.println("今天是星期二");break;case 3:System.out.println("今天是星期三");break;case 4:System.out.println("今天是星期四");break;case 5:System.out.println("今天是星期五");break;case 6:System.out.println("今天是星期六");break;case 7:System.out.println("今天是星期天");break;}}
}

以上为流程控制语句的整理笔记。


http://chatgpt.dhexx.cn/article/y0g0VstR.shtml

相关文章

Python中跳出循环的两种方法

我们经常遇到循环在进行到某一个特定的值时&#xff0c;需要跳出循环&#xff0c;或跳过这个值&#xff0c;python中早已为我们准备了这样的参数:break,continue 比如下面的for循环&#xff1a; for i in range(1,10):print(循环了,i,次) 结果显而易见如图&#xff1a; 当我…

js foreach与for循环之return跳出循环

因为自己比较大只&#xff0c;容易忘记&#xff0c;仅此用来记录一下~ 各种循环中使用return或者退出循环的机制。 1、forEach 使用 return 可以退出循环吗&#xff1f;下面代码打印啥&#xff1f; const list [1, 2, 3, 4, 5]list.forEach(e > {if (e 3) {return}consol…

JS中如何跳出.forEach循环

写在前面 提到在一段程序中如果碰到需要终止&#xff0c;结束一个循环&#xff0c;函数或者一段代码&#xff0c;一般会想到以下这几个关键字return、continue、break 简述一下三者的区别&#xff1a; break: 终止整个循环(有内层循环时终止的是内层循环)&#xff0c;退出swi…

JavaScript foreach 方法跳出循环

通常&#xff0c;在 for循环中跳出循环可以用 break或者 continue 来跳出循环。 break&#xff1a;跳出循环&#xff1b; continue&#xff1a;跳过当次循环。 而有时候需要在 foreach 中跳出循环&#xff0c;该怎么做呢&#xff1f; forEach() 方法用于调用数组的每个元素&am…

C++跳出for循环的方式

注&#xff1a;continue只能跳出当前层的循环&#xff0c;无法直接跳出for循环 方法1&#xff1a; for循环中满足条件后使用break语句&#xff1b; #include <iostream> using namespace std;int main(int argc,char *argv[]) {int i;for(i0;i<5;i){if(i2)break;}cou…

Js之跳出for循环,跳出多次for循环详解

一、for循环退出方式 首先我们都知道循环中最常用的就是continue;break; continue:表示跳出本次循环&#xff0c;也就是不执行本次循环continue之后的操作 break:表示跳出当前的循环&#xff0c;针对整个循环体终止后续的遍历&#xff1b; 最简单的应用效果如下&#xff1a; …

layui遮罩

layui遮罩 在执行某个按钮功能时,可能出现网络延迟或是其他原因时 避免重复表单提交,用遮罩.此次请求不响应,执行完毕,就一直遮罩住其他功能 var loading layer.load(1, {shade: [0.8, #393D49], time: 0}); layer.close(loading);写的位置 在请求开启之前遮住 在请求响应之…

遮罩Mask

一、遮罩&#xff1a;遮罩层范围内可看见被遮罩层图层&#xff0c;遮挡层范围可看见笼罩层图形 遮罩层必须至少有两个图层&#xff0c;上面的一个图层为“遮罩层”&#xff0c;下面的称“被遮罩层”&#xff1b;这两个图层中只有相重叠的地方才会被显示。也就是说在遮罩层中有…

基于vue3.0的遮罩

前言 最近在uniapp中要写一个弹窗&#xff0c;弹窗好写&#xff0c;但是遮罩没有接触过。找到了下面这篇文章&#xff0c;推荐仔细阅读一下。在这篇文章的基础下&#xff0c;简单封装了一个遮罩。 推荐文章&#xff1a;论如何用Vue实现一个弹窗-一个简单的组件实现 遮罩 备…

html5 div遮罩,CSS3 遮罩属性

遮罩(Mask)和Photoshop里的蒙版效果含义一致&#xff0c;用于为指定元素建立一个覆盖在上面的遮罩层。它显示在元素之上&#xff0c;和背景效果使用起来正好相反。我们可以使用遮罩在元素上方叠加一幅图或者一个渐变效果。 遮罩、内容和背景效果的显示层次如下图所示&#xff1…

html添加遮罩

html添加遮罩的代码如下所示 使用divcss &#xff0c;加载中的图片是网上下载的动图&#xff0c;可以根据自己需要进行修改 <!DOCTYPE html> <html> <head><title>DIV CSS遮罩层</title><script language"javascript" type"t…

Android渐变遮罩

Android Studio版本&#xff1a; Android Studio Chipmunk 这篇文章介绍如何在Android中实现这样的渐变遮罩 依赖项 1.CardView 在app下的build.gradle中添加依赖&#xff0c;并且完成编译 dependencies {implementation androidx.cardview:cardview:1.0.0 } 2.两张svg图片…

Blender 利用遮罩剔除顶点

&#x1f369;mask &#x1f367;效果&#x1f961;步骤&#x1f366;mask贴图制作&#x1f364; 添加顶点权重编辑&#x1f957;添加mask&#x1f35f;应用修改 &#x1f367;效果 &#x1f961;步骤 &#x1f366;mask贴图制作 &#x1f4a1; 本次教程参考以下贴图制作mas…

Unity之ASE 图片遮罩

前言 当一张图片,我们希望它只显示一部分时,就可以使用一张特定的遮罩图来控制它的显示。 比如下图,我们希望它的边缘变成圆角,且过渡自然。 我们就可以和下面的遮罩图进行融合。 最后出来的效果如下图所示: 原理 原理很简单,我们只使用了一个Multiply相乘即可 我们…

手写遮罩层

&#xff08;注&#xff1a;图文不符&#xff0c;仅供参考&#xff09; 遮罩层原理 就是当出现弹窗或者确认框的时候&#xff0c;点击弹窗外的地方不会触发别的响应&#xff0c;只是单纯地关闭弹窗&#xff08;或者不关闭也不触发其他响应&#xff09; 遮罩层的简单写法 任意…

利用Openlayers4实现地图遮罩效果(三)

文章目录 前言完整代码效果 代码解读完整项目代码(含测试数据&#xff09; 前言 之前写的关于利用openlayer创建遮罩的文章&#xff08;原文&#xff09;&#xff0c;那篇文章主要是讲如何创建一个四周遮罩&#xff08;即四周外围遮罩但露出目标中心区域&#xff09;。后面有很…

前端遮罩层实现_前端制作遮罩与蒙版

-1 遮罩: 有色则显示,无色抠取,半透明则半透明 蒙版: 黑色则抠除,白色显示,灰色则半透明 概念上两者非常容易混淆,但完成的效果是一样的,需记住哪个是无色抠取,哪个是黑色抠除。 再者还有个裁剪,只是做裁切,没有对半透明情况的处理。 这样一说就知道,本文阅读起来可…

elementui 遮罩

今日突发奇想&#xff0c;在之前的项目中是通过jQyery layUI实现遮罩效果的&#xff0c;效果如图 ​​​​​​​ 但jQuery和layUI的时代已经过去了&#xff0c;于是思考了一下如何通过VUE elementUI实现遮罩效果&#xff0c;本人没亲手实现&#xff0c;但目测通过elementU…

div遮罩层

实现遮盖层&#xff0c;使一部分区域不可点击编辑等。 1.简易遮罩层一&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"width<device-width>,…

CSS mask遮罩

一、CSS mask遮罩的过往和现状 CSS mask遮罩属性的历史非常久远了&#xff0c;远到比CSS3 border-radius等属性还要久远&#xff0c;最早是出现在Safari浏览器上的&#xff0c;差不多可以追溯到09年。 不过那个时候&#xff0c;遮罩只能作为实验性的属性&#xff0c;做一些特…