当前位置: 首页 > news >正文

Java基础入门流程控制全解析:分支、循环与随机数实战

引言

流程控制是编程语言的核心逻辑结构,决定了程序的执行顺序与逻辑判断能力。本文以 分支结构循环结构 和 随机数生成 为核心,结合代码示例与底层原理,全面解析Java中流程控制的应用场景与实战技巧。

一、分支结构

1. if分支

作用:根据条件表达式的结果(true/false)决定代码执行路径。

三种形式
  1. 单分支 

    if (条件) {
        // 条件为true时执行
    }
  2. 双分支

    if (条件) {
        // 条件为true时执行
    } else {
        // 条件为false时执行
    }
  3. 多分支

    if (条件1) {
        // 条件1为true时执行
    } else if (条件2) {
        // 条件2为true时执行
    } else {
        // 所有条件均不满足时执行
    }
    案例:成绩奖励机制
Scanner sc = new Scanner(System.in);
System.out.print("请输入成绩:");
int score = sc.nextInt();
if (score >= 95) {
    System.out.println("奖励山地自行车一辆");
} else if (score >= 90) {
    System.out.println("奖励游乐场玩一次");
} else if (score >= 80) {
    System.out.println("奖励变形金刚玩具一个");
} else {
    System.out.println("胖揍一顿");
}

2. switch分支

作用:根据表达式的值匹配具体分支执行,适合离散值比较。

语法
switch (表达式) {
    case 值1:
        // 匹配值1时执行
        break;
    case 值2:
        // 匹配值2时执行
        break;
    default:
        // 无匹配时执行
}
注意事项
  • 表达式类型:支持byteshortintcharString(JDK7+)和枚举。

  • 穿透性:若未写break,会继续执行后续case代码。

  • case值唯一性:不能重复且必须为字面量。

案例:工作日备忘录
String day = "周一";
switch (day) {
    case "周一":
        System.out.println("埋头苦干,解决bug");
        break;
    case "周三":
        System.out.println("今晚啤酒、龙虾、小烧烤");
        break;
    default:
        System.out.println("按部就班工作");
}

二、循环结构

1. for循环

作用:已知循环次数时,控制代码重复执行。

语法
for (初始化语句; 循环条件; 迭代语句) {
    // 循环体
}
案例:求1-100的偶数和
int sum = 0;
for (int i = 1; i <= 100; i++) {
    if (i % 2 == 0) {
        sum += i;
    }
}
System.out.println("偶数和:" + sum);

2. while循环

作用:不确定循环次数时,根据条件重复执行代码。

语法
初始化语句;
while (循环条件) {
    // 循环体
    迭代语句;
}
案例:纸张折叠成珠峰高度
double peakHeight = 8848860;  // 珠峰高度(毫米)
double paperThickness = 0.1;  // 纸张厚度(毫米)
int count = 0;
while (paperThickness < peakHeight) {
    paperThickness *= 2;
    count++;
}
System.out.println("需折叠次数:" + count);

3. do-while循环

特点:先执行循环体,再判断条件,至少执行一次。

语法
初始化语句;
do {
    // 循环体
    迭代语句;
} while (循环条件);
案例:用户菜单选择
Scanner sc = new Scanner(System.in);
int choice;
do {
    System.out.println("1.登录 2.注册 3.退出");
    choice = sc.nextInt();
} while (choice != 3);

三、跳转关键字

1. break

作用:立即终止当前循环或switch分支。

案例:密码验证
Scanner sc = new Scanner(System.in);
int correctPwd = 520;
while (true) {
    System.out.print("请输入密码:");
    int input = sc.nextInt();
    if (input == correctPwd) {
        System.out.println("欢迎进入系统");
        break;
    } else {
        System.out.println("密码错误");
    }
}

2. continue

作用:跳过当前循环的剩余代码,进入下一次迭代。

案例:输出1-10的非偶数
for (int i = 1; i <= 10; i++) {
    if (i % 2 == 0) {
        continue;
    }
    System.out.println(i);
}

四、随机数生成(Random类)

1. 基本使用

步骤

  1. 导包:import java.util.Random;

  2. 创建对象:Random r = new Random();

  3. 生成随机数:int num = r.nextInt(范围);

案例:生成1-100随机数
Random r = new Random();
int number = r.nextInt(100) + 1;  // 1-100
System.out.println("随机数:" + number);

2. 猜数字游戏

Random r = new Random();
int target = r.nextInt(100) + 1;
Scanner sc = new Scanner(System.in);
while (true) {
    System.out.print("请输入猜测数字(1-100):");
    int guess = sc.nextInt();
    if (guess > target) {
        System.out.println("过大");
    } else if (guess < target) {
        System.out.println("过小");
    } else {
        System.out.println("猜中了!");
        break;
    }
}

五、总结

  • 分支结构if适合区间判断,switch适合离散值匹配。

  • 循环结构for用于已知次数,while用于未知次数,do-while至少执行一次。

  • 跳转关键字break终止循环,continue跳过当前迭代。

  • Random类:灵活生成指定范围的随机数,增强程序交互性。

学习建议

  • 多练习循环嵌套(如打印九九乘法表)。

  • 结合实际问题设计分支逻辑(如用户权限验证)。

  • 尝试实现复杂交互逻辑(如猜数字游戏的难度分级)。

相关文章:

  • 部署MuseTalk时, MMCV问题解决方案
  • 【MyBatis Plus 逻辑删除详解】
  • DICOM开发者常用DICOM开源库详解
  • 推理大模型时代,TextIn ParseX助力出版业知识资产重构
  • 全球领先的光学方案设计公司:倚光科技
  • Android Spinner总结
  • 23、vue3+vite配置环境变量实现开发、测试、生产的区分
  • LLM最新的模型微调技术有哪些
  • c语言闯算法--常用技巧
  • LINUX 指令大全
  • 养生,点亮健康生活
  • 监听新打开窗口的关闭情况和iframe内系统的url改变情况
  • 如何用“几何产品规范”让齿轮测量更精准?
  • 如何选择适合您智能家居解决方案的通信协议?
  • Spring Boot 项目部署启动异常问题分析与解决​:主类缺失与依赖冲突的分析
  • Java 集合框架:数据管理的强大工具
  • vue知识点(4)
  • STM32F407 定时器
  • 第九课:异步爬虫进阶:aiohttp与多线程的技术博客
  • 【Java 和 Scala】-- Java 与 Scala 的 Assert 断言对比
  • 江西省直机关工委副书记熊亮华履新宜春市委常委、宣传部部长
  • 保利42.41亿元竞得上海杨浦东外滩一地块,成交楼面单价超8万元
  • 中美“第二阶段”贸易协定是否会在会谈中提出?商务部回应
  • 家庭相册㉙在沪打拼25年,我理解了父母清晨去卖蜜饯的辛苦
  • “20后”比“60后”更容易遭遇极端气候事件
  • A股26家游戏企业去年营收近1900亿元:过半净利下滑,出海成为主流选择