java笔记3-选择结构与循环结构

本文详细介绍了Java中的流程控制结构,包括顺序结构、选择结构(if单分支、双分支、多分支)和循环结构(while、do-while、for)。讲解了if-else、switch语句的使用及注意事项,以及循环结构中的break和continue语句,并提到了双重循环和跳转语句的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java流程控制:
java中有三种流程控制结构**:顺序结构、选择结构、循环结构**

顺序结构:
指程序从上向下依次执行每条语句的结构,中间没有任何的判断和选择。

public static void main(String [] args){
	System.out.println("Hello World!");
}

选择结构:
根据条件判断的结果来选择执行不同的代码
循环结构:
根据条件判断重复性地执行某段代码

if控制语句:
有三种不同的形式,分别是单分支结构、双分支结构和多分支结构

单分支结构:
if(表达式){
语句
}

在这里插入图片描述

public static void main(String[] args) {
		int a = 10;
		int b = 12;
		if(a>b) {
		System.out.println(a);
		}
	}

if是java的关键字
表达式布尔类型的表达式,其结果为true或false
if语句的执行步骤如下:
1)对表达式的结果进行判断
2)如果表达式的结果为真,则执行该语句
3)如果表达式的结果为假,则跳过该语句
if 使用过程中可能遇到的坑:
if后面有一个分号; 而分号也是一个完整的表达式
如果b为true,会执行这个分号,然后打印yes
如果b为false,不会执行这个分号,然后打印yes

public static void main(String[] args) {
		int a = 10;
		int b = 12;
		if(a>b) ;
		System.out.println(a);
		
		
	}

使用if-else语句实现多分支语句
语法格式:
if(表达式){
语句1
}else{
语句2
}
在这里插入图片描述

当表达式为真时(满足条件),执行语句1;表达式为假时,执行else分支的语句

if-else语句的执行步骤如下:
1)对表达式的结果进行判断
2)如果表达式的结果为true,则执行语句1
3)如果表达式的结果为false,则执行语句2
注意:if-else语句由if和紧随其后的else组成
else子句不能单独使用,它必须是if语句的一部分,与最近的if语句配对使用

public static void main(String[] args) {
		int a = 10;
		int b = 12;
		if(a>b) {
			System.out.println(a);
		}else {
			System.out.println(b);
		}
	}

使用多分支语句实现多分支处理
语法格式:
if(表达式){
语句1
}else if(表达式2){
语句2
}else{
语句3
}

其中else if语句可以有多个
多分支if语句执行流程:
1)对表达式1的结果进行判断
2)如果表达式1的结果为true,则执行语句1,;否则判断表达式2的值
3)如果表达式2的结果为true,则执行语句2;否则执行语句3

在这里插入图片描述
注意:如果if或else子句中要执行的语句超过一条,则必须将这些语句用大括号括起来

public static void main(String[] args) {
		int a = 10;
		int b = 10;
		if(a>b) {
			System.out.println(a);
		}else if(a<b){
			System.out.println(b);
		}else {
			System.out.println(a+b);
		}
	}

嵌套if控制语句;
If(表达式1){
If(表达式2){
语句块1
}else{
语句2
}
}else{
If(表达式3){
语句3
}else{
语句4
}
}
嵌套if控制语句的执行步骤如下:
1)对表达式1的值进行判断。
2)如果表达式1的结果为true,再对表达式2的结果进行判断。如果表达式2的结果为true,则执行语句1;否则,执行表达式2的值。
3)如果表达式1的结果为false,对表达式3的结果进行判断。如果表达式3的值结果为true,则执行语句3;否则,判断表达式4的值
在这里插入图片描述

public static void main(String[] args) {
		/*
		要求:
		(1)外层if控制语句用来判断是否是工作日
		(2)内层if控制语句用来判断天气情况
		实现步骤:
		(1)使用if控制语句判断今天是否是周六或周日
		(2)如果是周六或周日,那么进一步判断气温是否在30度以上
		(3)如果不是周六或周日,那么进一步判断天气好 
		 */
		//定义星期数为6
		int day = 6; 
		//定义温度为31度
		int temp = 31;
		//定义天气状况为好
		String weather = "天气好";
		//条件判断:如果day==6或者day==7满足条件执行temp>30判断
		//不满足条件判断天气状况
		if(day==6||day==7) {
			//如果temp大于30满足条件输出去游泳,不满足输出去爬山
			if(temp>30) {
				System.out.println("去游泳");
			}else {
				System.out.println("去爬山");
			}
		}else {
			if ("天气好".equals(weather)) {
				System.out.println("去客户单位谈业务");
			}else {
				System.out.println("在公司上网查资料 ");
			}
		}

嵌套的样式有多种,不单一,没有规定的格式

switch语句(相当于if else的另一种表达方式——多分支结构):
表达式不是boolean类型
switch(表达式/值){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
case 常量3:
语句3;
break;

}

case用于与表达式进行匹配,表达式里面的值不是布尔类型
break用于终止后续语句的执行
default是可选的,当其他条件都不匹配时执行default

Switch可以使用byte,short,int,char,String,enum

case的穿透性:
每个表达式结束,都应该有一个break;如果case语句中没有break的跳出循环的话,后面的结构不做判断直接运行,而且default也会执行。

switch语句的执行步骤:
1)计算switch后表达式的值
2)将计算结果从上至下依次与case后的常量值比较
3)如果相等就执行该常量后的的代码块,遇到break语句就结束
4)如果与任何一个case后的常量值都不匹配,就执行default中的语句

public static void main(String[] args) {
		int score = 75;
		switch (score/10) {
			case 10:
			case 9:
				System.out.println("A级");
				break;
			case 8:
				System.out.println("B级");
				break;
			case 7:
				System.out.println("C级");
				break;
			case 6:
				System.out.println("D级");
				break;
			default:
				System.out.println("E级");
		}
	}

循环结构:
java中的循环有while循环、do-while循环和for循环
主要作用是反复执行一段代码,直到满足一定的条件为止。
构成:
1、初始部分:设置循环的初始状态
2、循环体:重复执行的代码
3、循环条件:判断是否继续循环的条件,如使用“i<100”判断循环次数是否已经达到100次

while循环:
语法格式:
变量初始化
while(循环条件){
循环体
}
循环条件是一个布尔表达式,值为true或false
大括号中的语句统称为循环操作,也称循环体。

while语句的执行步骤:
1)先对循环条件进行判断,如果结果为真,则执行循环语句
2)执行完毕后继续对循环条件进行判断,如果为真,继续执行
3)如果结果为假,则跳出循环,执行后面的语句
在这里插入图片描述

public static void main(String[] args) {
		int sum = 0;
		int i = 1;
		while(i<=100) {
			sum += i;
			i++;
		}
		System.out.println(sum);
	}

要注意避免出现死循环的情况!!!

do-while循环:
语法格式:
变量初始化
do{
循环体
}while(循环条件);
执行步骤:
1)首先执行循环体
2)在对循环条件进行判断,至少执行一次
3)如果结果为真,则继续执行循环体。如果结果为假,终止循环,执行后面的语句。
注:do-while循环语句 while后面跟着的是分号(“ ; ”)
在这里插入图片描述

public static void main(String[] args) {
		int sum = 0;
		int i = 1;
		do {
			sum += i;
			i++;
		} while (i<=100);
			System.out.println(sum);
	}

for 循环:
语法格式
for(表达式1;表达式2;表达式3){
循环体
}
表达式1 :定义的初始化变量,第一次进入循环就执行,并且只执行一次

也可以这样表示:
for(变量初始化;循环条件;修改循环变量的值){
循环体
}

在这里插入图片描述
for循环执行步骤:
1)首先执行表达式1,一般是进行变量初始化操作
2)然后执行表达式2,即对循环条件进行判断
3)如果结果为真,则执行循环体
4)循环语句执行完毕后执行表达式3,改变循环变量的值,再次执行表达式2,如果结果为真,继续循环
5)如果结果为假,终止循环,执行后面的语句

import java.util.Scanner;
public static void main(String[] args) {
		int score;
		int sum = 0;
		double avg = 0.0;
		Scanner input = new Scanner(System.in);
		System.out.println("请输入学生姓名:");
		//接收学生的姓名
		String name = input.nextLine();		
		//循环5次录入5门功课成绩
		for(int i=0;i<=5;i++) {
			System.out.println("请输入5门功课中的"+(i+1)+"门功课的成绩:");
			//接收1门功课的成绩
			score = input.nextInt();
			//计算成绩和
			sum += score;
		}
		//计算平均分
		avg = sum/5;
		System.out.println(name+"的平均分是:"+avg);
	}

多重循环:
指一个循环语句中的循环体中在包含循环语句,有称为嵌套循环。循环语句内可以嵌套多层循环。同时,不同的循环语句可以相互嵌套
双层循环嵌套执行的次数是乘积的关系:外层循环控制轮数,内层循环控制执行次数 外层执行第一轮,内层根据要执行的次数来执行次数,在重复到外层循环的第二轮,重复执行

while循环与do-while循环、for循环的区别:
1、 语法格式不同
2、 执行顺序不同:while循环先判断循环条件,再执行循环体,如果条件不成立,则退出循环。 do-while循环 先执行循环体,再判断循环条件,循环体至少执行一次。 for循环 先执行变量初始化部分,再判断循环条件,然后执行循环体,最后进行循环变量的计算。如果条件不成立,跳出循环
3、 适用的情况不同:在解决问题时,对于循环次数确定的情况下,通常选用for循环;对于循环次数不确定的情况,通常使用while和do-while循环

跳转语句:
1、break语句:在循环中的作用是终止当前循环(通常与if控制语句一起使用)
2、continue:结束当前本次循环,继续下一次循环,不在执行循环体中continue后面的语句(通常用于循环结构中)
3、return:跳出方法体 结束当前方法的执行并退出 返回至调用该方法的语句处(通常用于方法中)

区别:continue和break用来实现循环结构的跳转,return用来跳出方法

双层for循环:
使用boolean变量结束外部循环:借用boolean变量结束外部循环,需要在内部循环中修改这个变量值,每次内部循环结束后,都要在问外部循环中判断,这个变量的值

使用标签结束外部循环:
在外部循环前的前一行,加上标签,在break的时候使用该标签
即能达到结束外部循环的效果

over:while(true){
    switch(){
	case:
	        break;
	case:
	        break;
	case:
	        break over;     //终止的是上面while的循环
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值