Java—程序流程控制语句

本文详细解析了Java中的分支结构(if和switch)、循环结构(for、while、do-while)以及跳转语句(break和continue)。通过实例说明了这些控制语句的语法和应用场景,强调了选择使用哪种结构时的考虑因素。
摘要由CSDN通过智能技术生成


一、什么是程序流程控制语句?

  Java程序流程控制语句是指通过控制程序的执行顺序来实现特定的功能。
  程序的流程控制一般分为3种:顺序结构、分支结构、循环结构
  顺序结构:不加任何控制,代码从main方法开始自上而下执行;就像阅读文章一样从上往下一行一行的阅读。
  分支结构:根据条件判断是true还是false,有选择性的执行代码。在Java语言中提供两个格式if 、 switch
  循环结构:控制某一段代码重复执行。在Java语言中提供了三种格式,for、while、do-while

二、分支结构

2.1 if分支结构

  if作用:用于对条件进行判断,判断的结果只有两个值true或者false,然后根据条件判断的结果来决定执行程序的代码。

2.1.1 if 的语法格式第一种

/*
条件表达式结果为true,执行下面的语句体;
条件表达式结果为false,则不执行语句体
*/
if(条件){
语句体;
}
//例子: 测量用户体温,体温高于37度发出提示。
double t = 37.5;
if(t > 37){
    System.out.println("体温异常");
}
//因为满足表达式,所以执行if语句体。打印结果:体温异常
//如果不满足表达式,则不会执行if语句体。

2.1.2 if 的语法格式第二种

 /*
 条件表达式为true,就执行下面的语句体1
 条件表达式为false,就执行else下面的语句体2
 */
if(条件){
语句体1}else{
语句体2}
//例子
//发红包,钱包余额是99元,现在要发出90元
double money = 19;
if(money >= 90){
    System.out.println("发红包成功");
}else {
    System.out.println("余额不足");
}
//因为满足表达式,所以执行if语句体1。打印结果:发红包成功

2.1.3 if 的语法格式第三种

/*第三种
条件表达式1 结果为true,就执行下面的代码1; 结果为false,就继续判断条件表达式2;

条件表达式2 结果为true,就执行下面的语句体;结果为false,就继续判断条件语句体3;

条件表达式3 结果为true,就执行下面的语句体3;结果为false,就继续判断后面的表达式;
....
如果前面所有条件表达式判断都为false,则执行最后的else语句中的代码
*/
if(条件){
语句体1}else if{
语句体2}else if{
语句体3}
...
else{
语句体n+1;
}
//例子
// 某个公司有一个绩效系统,根据员工的打分输出对应的绩效级别。
//D[0,60)   C[60,80)  B[80,90)  A[90,100] 
int score = 298;
if(score >= 0 && score < 60) {
    System.out.println("您的绩效级别是: D");
}else if(score >= 60 && score < 80){
    System.out.println("您的绩效级别是: C");
}else if(score >= 80 && score < 90){
    System.out.println("您的绩效级别是: B");
}else if(score >= 90 && score <= 100){
    System.out.println("您的绩效级别是: A");
}else {
    System.out.println("请输入正确的绩效!");
}
//打印结果:请输入正确的绩效!
//以上案例,因为都不满足表达式1至4,所以执行else语句体。

2.2switch分支结构

  switch 作用:通过比较值来决定执行哪条分支代码。
  switch执行流程:1.先执行表达式的值,再拿这个值与case的值进行比较;2.与那个case值匹配,则执行那个case块的代码;3.如果表达式的值都不匹配,则执行default的代码块。

/*语法
switch(表达式){
	case 值1:
		执行代码1;
		break;
	case 值2:
		执行代码2;
		break;
	case 值3:
		执行代码3;
		break;
		...
	default:
		执行代码n;
		}
}
*/
//用法案例
String week = "周三";
switch (week){
    case "周一":
        System.out.println("埋头苦干,解决bug");
        break;
    case "周二":
        System.out.println("请求大牛程序员帮忙");
        break;
    case "周三":
        System.out.println("今晚啤酒、龙虾、小烧烤");
        break;
    case "周四":
        System.out.println("解决程序bug");
        break;
    case "周五":
        System.out.println("今晚吃鸡");
        break;
    case "周六":
        System.out.println("游戏时间");
        break;
    case "周日":
        System.out.println("休息时间");
        break;
    default:
        System.out.println("您输入的星期信息不存在");
}

注意事项
1、switch表达式类型只能是byte、short、int、char;JDK5开始支持枚举,JDK7开始支持String;不支持double、float、boolean。
2、case给出的值不允许重复,且只能是字面量,不能是变量。
3.正常使用switch的时候,不要忘记写break,否则会出现穿透现象。当switch语句中没有遇到break,就会直接穿透到下一个case语句执行,直到遇到break为止。
在这里插入图片描述
在某些情况下可以利用case穿透现象实现需求,提高代码复用性。这个可以自行摸索。

2.3 if 、switch如何选择

  if和switch的功能都是用来判断,但相对来说if的功能更为强大一点,switch分支做的判断,if也可以做。如果是需要对一个范围进行判断,使用if分支结构进行判断比较合适。对一个具体的值进行判断,则用switch分支进行判断比较合适。

三、循环结构

  循环结构:可以控制一段代码重复执行多次。

3.1 for循环

//语法格式
for (初始化语句; 循环条件; 迭代语句) {
    循环体语句(重复执行的代码);
}
初始化语句:一般是定义一个变量,并给初始值
循环条件:一般是一个关系表达式,结果必须是true或者false
迭代语句:用于对条件进行控制,一般是自增或者自减
循环语句体:需要重复执行的代码

执行的流程
在这里插入图片描述

//案例:求1~100中所有整数的和
int sum = 0;
//定义一个循环,先产生1-100,这100个数
for (int i = 1; i <= 100; i++) {
    //每产生一个数据,就把这个数和sum累加
    sum += i; //sum = sum  + i;
}
System.out.println("1-100的数据和:" +  sum);

3.2 while循环

//语法格式
while(循环条件){
循环体语句(重复执行的代码);
迭代语句;
}

执行流程
在这里插入图片描述

// 	定义变量记住珠穆朗玛峰的高度和纸张的高度。
double peakHeight = 8848860;
double paperThickness = 0.1;

// 3、定义一个变量count用于记住纸张折叠了多少次
int count = 0;

// 2、定义while循环控制纸张开始折叠
while (paperThickness < peakHeight) {
    // 把纸张进行折叠,把纸张的厚度变成原来的2倍。
    paperThickness = paperThickness * 2;
    count++;
}
System.out.println("需要折叠多少次:" + count);
System.out.println("最终纸张的厚度是:" + paperThickness);

3.3 do while循环

//语法格式
do{
循环体语句(重复执行的代码);
迭代语句;
}while(循环条件);

执行流程
在这里插入图片描述

3.4 循环结构区别

1.for循环 和 while循环(先判断后执行); do...while (先执行后判断)且至少会执行一次
2.for循环和while循环的执行流程是一模一样的,功能上无区别,for能做的while也能做,反之亦然。
	如果已知循环次数建议使用for循环,如果不清楚要循环多少次建议使用while循环。
3 for循环中控制循环的变量只在循环中使用; while循环中,控制循环的变量在循环后还可以继续使用

3.5 死循环

  顾名思义,死循环就是一直循环执行代码,没有触发循环结束的条件;死循环最典型的是可以用死循环来做服务器程序;谨慎使用是循环,可根据需求来写死循环。

//for死循环
for ( ; ; ){
    System.out.println("Hello World1");
}

//while死循环
while (true) {
    System.out.println("Hello World2");
}

//do-while死循环
do {
    System.out.println("Hello World3");
}while (true);

四、循环嵌套

  所谓循环嵌套,就是一个循环中又包含另一个循环(俗称套娃)

/*
*******
*******
*******
*******
使用for循环嵌套打印上面的内容
*/
for (int i = 1; i <= 4; i++) {
    for (int j = 1; j <= 7; j++) {
        System.out.print("*"); // 不换行
    }
    System.out.println(); //换行
}

套循环重点理解:外部循环每循环一次,内部循环会全部执行完一轮。

五、跳转语句 break 、continue

  break作用:跳出并结束当前的循环体程序,且只能用于结束所在的循环体,或者switch分支
  continue作用:结束本次循环,进入下一次循环,且只能在循环体中使用
break和continue不能在同一个循环体内使用
在这里插入图片描述

// 1、break:跳出并结束当前所在循环的执行。
for (int i = 1; i <= 5; i++) {
    System.out.println("我爱学习:" + i);
    if(i == 3){
        // 打印三次我爱学习后结束循环,不再执行后面的第四、第五次循环。
        break; // 跳出并结束当前所在循环的执行。
    }
}

// 2、continue:跳出当前循环的当次执行,直接进入循环的下一次执行。
for (int i = 1; i <= 5; i++) {
    if(i == 3) {
        // 已经连续学习两天,第三天休息,后面继续学习
        continue;
    }
    System.out.println("学习新知识" + i);//最后打印的结果只有四次,因为第三次跳过不执行
}

总结

  以上就是Java的程序流程控制语句,本文仅仅简单介绍了控制语句的基本使用,更多的使用方法,可以自行去深入的研究其如何搭配使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值