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

Java零基础入门Day3:程序流程控制

目录

  1. 顺序结构
  2. 分支结构
    • if语句
    • switch语句
  3. 循环结构
    • for循环
    • while循环
    • do-while循环
    • 循环嵌套与死循环
  4. break与continue
  5. 综合案例
    • 猜数字游戏
    • 验证码生成
    • 找素数

1. 顺序结构

代码默认从上到下依次执行。
示例:

public class Test {public static void main(String[] args) {System.out.println("A");System.out.println("B");System.out.println("C");    //输出结果:A B C}
}

2. 分支结构

2.1 if语句

三种形式:

  1. 单分支

if (条件表达式) {代码块;
}
  1. 双分支

if (条件表达式) {代码块1;
} else {代码块2;
}
  1. 多分支

if (条件1) {代码块1;
} else if (条件2) {代码块2;
} else {代码块n;
}

注意事项:

  • {}中只有一行代码,{}可省略。

  • if()后不可直接写分号;,否则逻辑错误。

应用场景:

  • 自动驾驶红绿灯判断(布尔变量记录灯状态)。

  • BMI指数健康提示(区间判断)。


2.2 switch语句

语法:

switch(表达式) {case 值1:代码块1;break;case 值2:代码块2;break;default:默认代码块;
}

执行流程:

  1. 计算表达式值,与case值匹配。

  2. 匹配成功后执行对应代码块,遇到break退出。

  3. 无匹配则执行default块。

注意事项:

  • 表达式类型:byteshortintcharString(JDK7+)。

  • case值必须唯一且为字面量。

  • 穿透性应用:多个case共享代码块时可省略break

适用场景:
值与多个固定选项匹配时(如菜单选择)。


3. 循环结构

3.1 for循环

语法:

for (初始化; 循环条件; 迭代语句) {循环体;
}

案例:求1-5的和

int sum = 0;
for (int i = 1; i <= 5; i++) {sum += i;
}
System.out.println("和为:" + sum); // 输出15

3.2 while循环

语法:

初始化;
while (循环条件) {循环体;迭代语句;
}

案例:纸张折叠次数

double peak = 8848860; // 山峰高度(毫米)
double paper = 0.1;    // 纸张厚度
int count = 0;
while (paper < peak) {paper *= 2;count++;
}
System.out.println("需折叠次数:" + count);

3.3 do-while循环

语法:

初始化;
do {循环体;迭代语句;
} while (循环条件);

特点: 先执行后判断,至少执行一次。

3.4 循环嵌套与死循环

嵌套示例:

for (int i = 0; i < 3; i++) {for (int j = 0; j < 5; j++) {System.out.print("*");}System.out.println();
}

输出:

*****
*****
*****

死循环写法:

while (true) { ... }  // 推荐
for (;;) { ... }

4. break与continue

  • break:跳出当前循环或switch

  • continue:跳过本次循环剩余代码,进入下一次迭代。


5. 综合案例

5.1 猜数字游戏

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

5.2 验证码生成

String code = "";
Random r = new Random();
for (int i = 0; i < 5; i++) {int type = r.nextInt(3); // 0数字,1大写,2小写switch (type) {case 0: code += r.nextInt(10); break;case 1: code += (char)(r.nextInt(26) + 65); break;case 2: code += (char)(r.nextInt(26) + 97); break;}
}
System.out.println("验证码:" + code);

5.3 找素数

for (int i = 2; i <= 100; i++) {boolean isPrime = true;for (int j = 2; j <= Math.sqrt(i); j++) {if (i % j == 0) {isPrime = false;break;}}if (isPrime) System.out.print(i + " ");
}

总结

  • 分支结构:根据条件选择执行路径,if适合区间判断,switch适合固定值匹配。

  • 循环结构:控制代码重复执行,for适用于已知次数,while适用于未知次数。

  • 实战应用:结合breakcontinue优化逻辑,灵活处理复杂场景。

http://www.xdnf.cn/news/233821.html

相关文章:

  • Flowith:解放思维的AI画布让创意与效率如泉涌
  • 动画震动效果
  • 【Bootstrap V4系列】学习入门教程之 加载必要文件和入门模板
  • javascript 深拷贝和浅拷贝的区别及具体实现方案
  • 【每日八股】复习 Redis Day4:线程模型
  • NLP 分词技术学习
  • 【Dify系列教程重置精品版】第四章:实现Dify的 hello world
  • ISO 26262认证步骤
  • 【Java面试笔记:进阶】30.Java程序运行在Docker等容器环境有哪些新问题?
  • 楼宇智能化三、五章【期末复习】
  • 芯知识|小体积语音芯片方案WTV/WT2003H声音播放ic应用解析
  • 楼宇智能化四章【期末复习】
  • (eNSP)Smart Link配置实验
  • MicroPython for esp32s3开发HX711称重模块指南
  • rk3568 A/B系统 OAT升级 实践
  • 全面了解CSS语法 ! ! !
  • 聊一聊接口自动化测试断言处理策略
  • 用户意图驱动:GEO优化策略之内容精准匹配
  • PID中低通滤波算法的详细讲解
  • 消防岗位技能竞赛流程方案策划
  • verilog_testbench技巧
  • 逻辑回归之参数选择:从理论到实践
  • [FPGA VIDEO IP] VCU
  • Allegro23.1新功能之新型via structure创建方法操作指导
  • 20250430在ubuntu14.04.6系统上完成编译NanoPi NEO开发板的FriendlyCore系统【严重不推荐,属于没苦硬吃】
  • 两向量平行公式、向量与平面平行公式、两平面平行公式;两向量垂直公式、向量与平面垂直公式、两平面垂直公式
  • 2025年数字创意设计与图像处理国际会议 (DCDIP 2025)
  • 一种导弹追踪算法的MATLAB仿真实现
  • HTML5 新增的主要标签整理
  • 10. 你需了解的原生测试框架Unittest断言的使用