Java SE——Java中的选择与循环结构

 前言

本博客文章已收录至专栏Java SE,阅读其他有关博客笔记请转至该专栏下查阅

传送门 -->程序员雨空集_Java SE专栏


选择结构

if 语句

if 语句

格式:

if (关系表达式) {
    语句体;	
}

执行流程:

①首先计算关系表达式的值

②如果关系表达式的值为true就执行语句体

③如果关系表达式的值为false就不执行语句体

④继续执行后面的语句内容

示例:

int x = 5;
if (x > 3) {
    // 当关系表达式 x > 3 为 true 时,执行该语句体
    System.out.println("x 大于 3");
}

System.out.println("继续执行后面的语句内容"); // 不论以上条件是否满足,该语句都会被执行

在上面的示例中,由于 x 的值为 5,所以关系表达式 x > 3 为 true。因此,会执行与条件关联的代码块,输出结果为 "x 大于 3"。之后,程序会继续执行后面的语句内容,输出结果为 "继续执行后面的语句内容"。

如果关系表达式的值为 false,则不执行与条件关联的代码块,但仍然会继续执行后面的语句内容。


if else语句

格式:

if (关系表达式) {
    语句体1;	
} else {
    语句体2;	
}

执行流程:

①首先计算关系表达式的值

②如果关系表达式的值为true就执行语句体1

③如果关系表达式的值为false就执行语句体2

④继续执行后面的语句内容

示例:

int a = 10;
int b = 20;

if(a > b) {
	System.out.println("a的值大于b");
} else {
	System.out.println("a的值不大于b");
}		
System.out.println("结束");

先判断a是否大于b,如果成立则输出"a的值大于b",否则输出"a的值不大于b"。无论条件是否成立,最后都会输出"结束"。在这个例子中,由于a的值不大于b,所以输出结果是"a的值不大于b"和"结束"。


if else if else 语句

格式:

if (关系表达式1) {
    语句体1;	
} else if (关系表达式2) {
    语句体2;	
} 
…
else {
    语句体n+1;
}

执行流程:

①首先计算关系表达式1的值

②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值

③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值

④…

⑤如果没有任何关系表达式为true,就执行语句体n+1。

switch 语句

格式:

switch (表达式) {
	case 1:
		语句体1;
		break;
	case 2:
		语句体2;
		break;
	...
	default:
		语句体n+1;
		break;
}

执行流程:

  • 首先计算出表达式的值
  • 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
  • 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉

示例:

//1.键盘录入一个整数表示星期
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数表示星期");
int week = sc.nextInt();
//2.书写一个switch语句去跟week进行匹配
switch (week){
    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;
    default:
        System.out.println("输入错误,没有这个星期");
        break;
}

注意:

  • default的位置和省略情况default可以放在任意位置,也可以省略
  • case穿透不写break会引发case穿透现象,特别注意
switch (week){
            case 1:
                System.out.println("跑步");
         
            case 2:
                System.out.println("游泳");
    
            case 3:
                System.out.println("慢走");
         
            case 4:
                System.out.println("动感单车");
                break;
            case 5:
                System.out.println("拳击");
                break;
            case 6:
                System.out.println("爬山");
                break;
            case 7:
                System.out.println("好好吃一顿");
                break;
            default:
                System.out.println("输入错误,没有这个星期");
                break;
        }


循环结构

循环结构用于重复执行一段代码,直到满足特定的条件退出循环

for 循环

格式:

for (初始化语句;条件判断语句;条件控制语句) {
	循环体语句;
}
  • 初始化语句:  用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
  • 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
  • 循环体语句:  用于表示循环反复执行的内容,简单说就是循环反复执行的事情
  • 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去

执行流程:

  • 执行初始化语句
  • 执行条件判断语句,看其结果是true还是false

如果是false,循环结束

如果是true,继续执行

  • 执行循环体语句
  • 执行条件控制语句
  • 返回到第二点,继续往下执行

示例:

public static void main(String[] args) {
		//需求:输出数据1-5
        for(int i=1; i<=5; i++) {
			System.out.println(i);
		}
		System.out.println("--------");
		//需求:输出数据5-1
		for(int i=5; i>=1; i--) {
			System.out.println(i);
		}
}

while 循环

格式:

while(条件判断语句){
	循环体;
	条件控制语句;
}

执行流程:

  1. 首先判断条件判断语句的结果是否为真
  2. 如果条件判断语句的结果为真,则执行循环体中的代码
  3. 执行完循环体中的代码后,再次判断条件判断语句的结果是否为真
  4. 如果条件判断语句的结果仍然为真,则继续执行循环体中的代码,重复步骤3
  5. 如果条件判断语句的结果为假,则跳出循环,继续执行循环后面的代码

示例:

int i = 1;
while(i <= 5){
    System.out.println("HelloWorld");
    i++;
}
System.out.println(i);

do while 循环

格式:

do{
    循环体;
    条件控制语句;
}while(条件判断语句);

执行流程:

  1. 首先执行循环体中的代码
  2. 执行完循环体中的代码后,再执行条件控制语句
  3. 判断条件判断语句的结果是否为真
  4. 如果条件判断语句的结果为真,则继续执行循环体中的代码,重复步骤2和3
  5. 如果条件判断语句的结果为假,则跳出循环,继续执行循环后面的代码

示例:

Scanner scanner = new Scanner(System.in);
int num;
        
do {
    	System.out.print("请输入一个数字:");
      num = scanner.nextInt();
      System.out.println("输入的数字是:" + num);
      num++;
    } while (num <= 5);
        
System.out.println("循环结束!");


三种循环的区别

for和while循环,是先判断,再执行

do...while是先执行,再判断

当知道循环次数或者循环范围的时候,用for循环

当不知道循环次数,也不知道循环范围,但是知道循环的结束条件时,用while循环


跳转语句

continue 语句

用于在循环语句中,作用为终止本次循环,执行下一次循环

示例:

public class ContinueExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            if (i % 2 == 0) {
                continue; // 如果是偶数,则终止本次循环,执行下一次循环
            }
            System.out.println(i);
        }
    }
}

使用for循环从1到10遍历数字。在每次循环时,我们使用if语句检查当前数字是否是偶数。如果是偶数,则使用continue语句终止本次循环,直接执行下一次循环。如果是奇数,则打印该数字。因此,上述代码只会输出1到10之间的奇数


break 语句

在 switch语句和循环语句中都可以使用 break语句,其作用是用于提前终止循环或者跳出switch语句

  • 在循环语句中,当执行到break语句时,会立即跳出当前循环,不再执行循环内剩余的代码,程序会继续执行循环后面的代码
  • 在switch语句中,当执行到break语句时,会立即跳出switch语句,不再执行后续的case语句,程序会继续执行switch语句后面的代码

在循环语句中使用break语句:

public class BreakExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            if (i == 3) {
                break; // 当i等于3时,跳出循环
            }
            System.out.println(i);
        }
        System.out.println("循环结束!");
    }
}

运行结果:

1
2
循环结束!

在上述代码中,我们使用for循环从1到5遍历数字。当i等于3时,执行到break语句,立即跳出循环,不再执行后续的代码。因此,只会输出1和2,然后打印"循环结束!"

在switch语句中使用break语句:

public class BreakExample {
    public static void main(String[] args) {
        int num = 2;
        switch (num) {
            case 1:
                System.out.println("数字是1");
                break;
            case 2:
                System.out.println("数字是2");
                break; // 当num等于2时,跳出switch语句
            case 3:
                System.out.println("数字是3");
                break;
            default:
                System.out.println("数字不是1、2、3");
        }
        System.out.println("switch语句结束!");
    }
}

运行结果:

数字是2
switch语句结束!

在上述代码中,我们使用switch语句根据num的值进行判断。当num等于2时,执行到break语句,立即跳出switch语句,不再执行后续的case语句。因此,只会输出"数字是2",然后打印"switch语句结束!"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨空集

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值