Java学习笔记-基础day-2-流程控制

本文详细介绍了Java编程中的顺序结构、分支结构(包括if、if...else、if...elseif...else和if...else嵌套)以及循环结构(for、while、do...while),并给出了多个示例代码,展示了如何在实际编程中使用这些基本控制流进行条件判断和循环操作。

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

1、顺序结构

顺序结构:代码按照顺序逐行往下执行。
使用Scanner对象从控制台读取数据。具体用法参见下面代码:

import java.util.Scanner;

public class Demo01 {
	
	public static void main(String[] args){
		
		// 1.创建Scanner对象
		Scanner scanner = new Scanner(System.in);
		
		// 2.读取int类型数据
		System.out.print("请输入整数:");
		// 调用scanner对象的nextInt()方法
		int age = scanner.nextInt();
		System.out.println("age="+age);
		
		
		// 3.读取字符串
		System.out.print("请输入一个字符串:");
		
		// next()方法会因为空格而终止读取
		String strValue = scanner.next();
		System.out.println("strValue="+strValue);
		
		// 推荐使用:
		// nextLine()方法不会因为空格而终止读取
		strValue = scanner.nextLine();
		System.out.println("strValue="+strValue);
	}
}

2、分支结构

[1]if语句
public class Demo02 {
    public static void main(String[] args){
        // 创建Scanner对象
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入i:");
        int i = scanner.nextInt();

        System.out.print("请输入j:");
        int j = scanner.nextInt();

        // 测试使用单独的if语句
        // 当if(判断条件)为true时执行{}中的语句
        if (i > j){
            System.out.println("i 比 j 大");
        }

        // 不建议这么做
        // 如果if语句块中只有一条语句,可以省略{}
        if (i < j){
            System.out.println("i 比 j 小");
        }

        // 读取一个布尔值
        System.out.print("请输入flag:");
        boolean flag = scanner.nextBoolean();

        // 没有必要写flag == true
        if (flag) {
            System.out.println("flag是真");
        }
    }
}
[2]if…else
public class Demo03 {
    public static void main(String[] args){
        // 创建Scanner对象
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入i:");
        int i = scanner.nextInt();

        System.out.print("请输入j:");
        int j = scanner.nextInt();

        if (i > j){
            System.out.println("i 比 j 大");
        } else {
            System.out.println("i 小于 或 等于 j");
        }
    }
}

[3]if…else if…else语句
public class Demo04 {
    public static void main(String[] args){
        // 创建Scanner对象
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入i:");
        int i = scanner.nextInt();

        System.out.print("请输入j:");
        int j = scanner.nextInt();

        if (i > j){								// 执行条件判断①
            System.out.println("i 比 j 大");	// ①为true时执行
        } else if (i < j) {						// ①为false继续执行下一个条件判断②
            System.out.println("i 比 j 小");	// ②为true时执行
        } else {
            System.out.println("i 和 j 相等");	// ②为false时执行
        }
    }
}

[4]if…else嵌套
public class Demo05 {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int i = scanner.nextInt();
        int j = scanner.nextInt();
        int m = scanner.nextInt();
        int n = scanner.nextInt();
        
        if (i > j){								// 执行条件判断①
            System.out.println("i 比 j 大");	// ①为true时执行
        } else if (i < j) {						// ①为false继续执行下一个条件判断②
            System.out.println("i 比 j 小");	// ②为true时执行
        } else {
            System.out.println("i 和 j 相等");	// ②为false时执行
            // 嵌套在其他if...else结构内的if
            if (m > n){
                System.out.println("m 比 n 大");
            }
        }
    }
}
[5]switch…case语句

字面意思:『切换』不同的『情况』。切换需要有依据,这就是我们在switch后面的括号要指定的数据

switch(表达式)中表达式的可选值类型

- byte
- short
- int
- char
- 枚举(JDK1.5)
- String(JDK1.7)

case子句

- case子句中指定的值必须是`常量`,不能是变量或不确定的表达式的值
- 同一个switch语句中所有case子句中的`常量值必须互不相同`

default子句

- default子句是可选的
- default子句的位置是灵活的
import java.util.Scanner;

public class Demo06 {
	
	public static void main(String[] args){
		
		// 创建Scanner对象
		Scanner scanner = new Scanner(System.in);

		System.out.print("请输入季节:");
		String season = scanner.nextLine();
		
		// 使用season变量的值和后面的case依次进行比较
		// 遇到一个满足条件的case,那么后面的都会被执行,包括default分支
		// 除非在某个case中使用了break关键字,停止了case的执行。
		switch(season){
			case "spring":
				System.out.println("春天");
				
				// break ;
			case "summer":
				System.out.println("夏天");
				
				// break ;
			case "autumn":
				System.out.println("秋天");
				
				// break ;
			case "winter":
				System.out.println("冬天");
				
				// break ;
				
			// 当前面每一个case都不匹配时执行default分支(默认分支)
			default:
				System.out.println("梅雨季节");
		}
	}
}

3、循环结构

流程图如下
在这里插入图片描述

for循环结构

语法规则

  • 循环结构中判断条件部分必须是布尔类型,当判断条件部分的表达式计算结果为false时,循环结束。
  • 初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔
  • 可以有多个变量更新用逗号分隔

流程图如下
在这里插入图片描述
在这里插入图片描述

for循环使用示例
for ( int i = 1 ; i <= 5; i++ ){
	//打印1-5
	System.out.println(i);
	
}
// 1~100偶数求和
sum = 0;
for ( int i = 1 ; i <= 100 ; i++ ) {
	
	// 判断当前的i是否是偶数
	// 偶数的判断标准:对2取模,结果为0
	if (i % 2 == 0){
		sum += i;
	}
}
while循环结构

在这里插入图片描述
在这里插入图片描述

while循环使用示例
// 1~100偶数求和
	int i = 0;
    int sum = 0;
    while (i <= 100){
        // 判断当前的i是否是偶数
        // 偶数的判断标准:对2取模,结果为0
        if (i % 2 == 0){
            sum += i;
        }
        i++;
    }
do…while循环结构

在这里插入图片描述
在这里插入图片描述

do…while循环使用示例
   int i = 0;
   int sum = 0;
    do {
        if (i % 2 == 0){
            sum += i;
        }
        i++;
    }while(i <= 100);
5.1 循环语句的区别
三种循环的区别总结
	1.建议使用的顺序:for,while,do-while 			
	2.循环次数确定建议使用for,循环次数不确定建议使用while 
    	循环次数不确定需要先写成死循环的格式   
	3.do-while循环来讲的话,至少执行一次 
	4.whiledo-while循环而言,循环结束后,初始化条件中定义的变量可以继续使用, 
		但是for循环的不能使用(for循环内部定义初始化语句)
    
public class Demo02 {
    public static void main(String[] args) {

        //for循环: 先判断条件,后执行循环体
        //for循环第一次布尔表达式都不成立(false): 循环体一次都不执行
        //第一次: i>5 --> 4>5 --> false 不执行循环体,直接执行for循环后面的输出语句
        for (int i = 4; i > 5; i++) {
            System.out.println("...for...");
        }
        System.out.println("...end...");

        //while循环: 先判断条件,后执行循环体
        //while循环第一次布尔表达式都不成立(false): 循环体一次都不执行
        //第一次: j>5 --> 4>5 --> false 不执行循环体,直接执行while循环后面的输出语句
        int j = 4;
        while (j > 5) {
            System.out.println("...while...");
            j++;
        }
        System.out.println("...end...");

        //do-while循环: 先执行循环体,再判断条件
        //do-while循环第一次布尔表达式都不成立(false): 循环体会至少执行一次(先执行,后判断条件)
        //第一次: 定义int变量k的值3,接着执行{}中的循环体,k的值变成4
        //再执行判断条件k>5 --> 4>5 --> false 结束do-while循环执行do-while后面的输出语句
        int k = 4;
        do{
            System.out.println("...do-while...");
            k++;//4
        } while(k>5);//k>5 --> 4>5 --> false 结束do-while循环执行do-while后面的输出语句
        System.out.println("do-while...end...");
    }
}


5.2 死循环
/*
     死循环
        1.概念: 永不休止的循环
        2.分类:
            (1)for循环的死循环格式 
                for(;;){...}

            (2)while循环的死循环格式        建议使用
                while(true){...}

            (3)do-while循环的死循环格式
                do{
                    ...
                }while(true);
 */
public class DeadLoop {
    public static void main(String[] args) {
        //for循环
        /*for (;true;) {
            System.out.println("Hello");
        }*/
        //for循环的死循环格式
        //不写布尔表达式: 默认就是true
        /*for (;;) {
            System.out.println("Hello");
        }*/

        //while循环的死循环格式
        /*int i = 0;
        while(i<3) {
            System.out.println("Hello");
        }*/
        /*while (true) {
            System.out.println("Hello");
        }*/

        //do-while循环的死循环格式
        /*int i = 0;
        do {
            System.out.println("Hello");
        }while(i<3);*/
        do {
            System.out.println("Hello");
        }while(true);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值