Java流程控制

01:用户交互 Scanner

核心知识点

  • Scanner 类作用:实现程序与用户的键盘交互,读取输入数据。
  • 基本使用步骤
    1. 导包:import java.util.Scanner;
    2. 创建对象:Scanner scanner = new Scanner(System.in);
    3. 读取数据:
      • 读取字符串:String str = scanner.next(); / String str = scanner.nextLine();
      • 读取整数:int num = scanner.nextInt();
      • 读取浮点数:double num = scanner.nextDouble();
    4. 关闭资源:scanner.close();
  • next () 与 nextLine () 区别
    • next():遇到空格 / 制表符 / 换行符就停止读取,不能读取带空格的字符串。
    • nextLine():读取到换行符为止,可读取完整一行内容(包含空格)。

02:Scanner 进阶使用

核心知识点

  • 判断输入类型 :通过 hasNextXxx() 方法判断输入是否为指定类型,避免输入类型不匹配异常。

    复制代码
    if (scanner.hasNextInt()) {
        int num = scanner.nextInt();
    } else {
        System.out.println("输入不是整数");
    }
  • 循环读取输入:结合循环实现多次输入,直到满足终止条件(如输入特定字符)。

  • 读取多行数据 :使用 while(scanner.hasNextLine()) 循环读取多行文本,常用于处理批量输入。


03:顺序结构

核心知识点

  • 定义:程序默认的执行结构,代码按书写顺序从上到下依次执行,无跳转、无分支。

  • 特点:最简单的流程控制结构,是所有复杂流程的基础。

  • 示例

    复制代码
    System.out.println("步骤1");
    System.out.println("步骤2");
    System.out.println("步骤3"); // 按顺序执行1→2→3

04:if 选择结构

核心知识点

  • 单分支 if :满足条件时执行代码块。

    复制代码
    if (条件表达式) {
        // 条件为true时执行
    }
  • 双分支 if-else :条件为 true 执行 if 块,否则执行 else 块。

    复制代码
    if (条件表达式) {
        // true逻辑
    } else {
        // false逻辑
    }
  • 多分支 if-else if-else :处理多个互斥条件,从上到下依次判断,满足则执行对应代码块。

    复制代码
    if (条件1) {
        // 逻辑1
    } else if (条件2) {
        // 逻辑2
    } else {
        // 所有条件都不满足时执行
    }
  • 嵌套 if:在 if/else 内部再嵌套 if 结构,适合处理复杂条件判断。


05:Switch 选择结构

核心知识点

  • 语法结构 :根据变量值匹配 case 标签,执行对应代码块。

    复制代码
    switch (变量/表达式) {
        case 常量1:
            // 逻辑1
            break; // 终止当前case,避免穿透
        case 常量2:
            // 逻辑2
            break;
        default:
            // 所有case都不匹配时执行
            break;
    }
  • 支持的变量类型:byte/short/int/char/String(Java 7+)/ 枚举。

  • case 穿透:若 case 后无 break,会继续执行后续 case 代码,直到遇到 break 或 switch 结束。

  • default 位置:可放在任意位置,通常放最后,所有 case 不匹配时执行。


06:While 循环详解

核心知识点

  • 语法 :先判断条件,再执行循环体,条件为 false 时直接跳过循环。

    复制代码
    while (循环条件) {
        // 循环体
        // 迭代语句(更新循环变量,避免死循环)
    }
  • 执行流程:判断条件→true 执行循环体→再次判断条件→...→false 结束循环。

  • 特点:循环体可能一次都不执行(条件初始为 false 时)。

  • 死循环 :若循环条件永远为 true(如while(true)),会无限执行循环体。


07:DoWhile 循环

核心知识点

  • 语法 :先执行一次循环体,再判断条件,条件为 true 则继续循环。

    复制代码
    do {
        // 循环体
        // 迭代语句
    } while (循环条件);
  • 执行流程:执行循环体→判断条件→true 则重复执行→false 结束循环。

  • 特点 :循环体至少执行一次,适合需要先执行再判断的场景。

  • 与 while 的区别:while 先判断后执行,do-while 先执行后判断。


08:For 循环详解

核心知识点

  • 语法 :将初始化、条件判断、迭代更新合并到一行,结构更紧凑。

    复制代码
    for (初始化语句; 循环条件; 迭代语句) {
        // 循环体
    }
  • 执行流程:初始化→判断条件→true 执行循环体→执行迭代语句→再次判断条件→...→false 结束。

  • 特点:适合循环次数已知的场景,代码可读性更高。

  • 省略写法 :可省略初始化 / 条件 / 迭代语句(但分号不能省),极端情况可写为for(;;)(死循环)。


09:打印九九乘法表

核心知识点

  • 实现思路:嵌套 for 循环,外层控制行数(1-9),内层控制列数(1 - 当前行数)。

  • 示例代码

    复制代码
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= i; j++) {
            System.out.print(j + "×" + i + "=" + (i*j) + "\t");
        }
        System.out.println(); // 换行
    }
  • 效果:输出经典九九乘法表,体现嵌套循环的应用。


10:增强 for 循环

核心知识点

  • 语法 :Java 5+ 新增,专门用于遍历数组 / 集合,简化遍历代码。

    复制代码
    for (元素类型 变量名 : 数组/集合) {
        // 使用变量访问当前元素
    }
  • 示例 :遍历数组

    复制代码
    int[] arr = {1,2,3};
    for (int num : arr) {
        System.out.println(num);
    }
  • 注意 :增强 for 循环无法修改数组 / 集合元素(仅读取),也无法获取当前索引。


11:break、continue、goto

核心知识点

  • break
    • 作用:跳出当前循环 /switch 语句,终止整个循环或 switch。
    • 示例:for(...) { if(...) break; } 满足条件时直接结束 for 循环。
  • continue
    • 作用:跳过当前循环的剩余语句,直接进入下一次循环迭代。
    • 示例:for(...) { if(...) continue; } 满足条件时跳过本次循环剩余代码。
  • goto(保留字,未启用)
    • Java 中 goto 是保留关键字,但未实现功能,避免破坏程序结构。
    • 替代方案:使用带标签的 break/continue 实现类似跳转(不推荐,可读性差)。

12:打印三角形及 Debug

核心知识点

  • 打印直角三角形 :嵌套 for 循环,外层控制行数,内层控制每行打印的 * 数量。

    复制代码
    for (int i = 1; i <= 5; i++) {
        for (int j = 1; j <= i; j++) {
            System.out.print("*");
        }
        System.out.println();
    }
  • 打印等腰三角形:先打印空格,再打印 *,实现居中效果。

  • Debug 调试技巧

    • 打断点:在代码行号处点击,标记调试位置。
    • 单步执行:Step Over(跳过方法)、Step Into(进入方法)、Step Out(跳出方法)。
    • 查看变量:实时监控变量值变化,定位逻辑错误。
相关推荐
河西石头2 小时前
分享python项目与开源python项目中的效率法宝--requirements文件的使用
开发语言·python·requirements文件·批量安装python依赖·python虚拟环境配置
chase。2 小时前
【学习笔记】基于扩散模型的运动规划学习与适应
人工智能·笔记·学习
xiaokangzhe2 小时前
MySQL主从复制读写分离笔记
笔记·mysql·adb
不懒不懒2 小时前
【卷积神经网络作业实现人脸的关键点定位功能】
开发语言·python
321.。2 小时前
Linux 进程控制深度解析:从创建到替换的完整指南
linux·开发语言·c++·学习
酉鬼女又兒2 小时前
零基础快速入门前端Web存储(sessionStorage & localStorage)知识点详解与蓝桥杯考点应用(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·javascript·职场和发展·蓝桥杯·html
Bert.Cai2 小时前
Python集合简介
开发语言·python
tryCbest2 小时前
Java和Python开发项目部署简介
java·开发语言·python
ZTLJQ2 小时前
任务调度的艺术:Python分布式任务系统完全解析
开发语言·分布式·python