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

第4篇:如果...那么——让程序做选择 java中文编程

第4篇:如果…那么——让程序做选择

**作者:**中文编程倡导者—— 李金雨
联系方式:wbtm2718@qq.com

目标:掌握条件判断语句,让程序根据不同的情况做出不同的反应
预计时间:3课时(135分钟)
难度:⭐⭐⭐☆☆(中等难度)


一、开篇引入

1.1 本课目标

学完本篇,你将能够:

  • ✅ 使用if-else让程序做选择
  • ✅ 使用else if处理多种情况
  • ✅ 使用switch做多分支选择
  • ✅ 使用三目运算符简化代码
  • ✅ 写一个简单的猜数字游戏

1.2 生活场景引入

编程就像十字路口的红绿灯!

想象一下:

  • 🚦 如果是绿灯 → 就通行
  • 🚦 如果是红灯 → 就停下
  • 🚦 如果是黄灯 → 就等待

程序也是一样:根据不同的条件,做不同的事情!

1.3 预期成果展示

请输入数字(1-7):5 星期五 成绩:85分 → 良好

二、概念讲解

2.1 if语句(如果…那么)

语法:

if(条件){// 条件成立时执行的代码}

生活例子:

  • 如果(下雨了)→ 我就带伞
int分数=85;if(分数>=60){System.out.println("恭喜你,及格了!");}

2.2 if-else语句(如果…那么…否则)

语法:

if(条件){// 条件成立时执行}else{// 条件不成立时执行}

生活例子:

  • 如果(下雨了)→ 我带伞
  • 否则 → 我不带伞
int分数=45;if(分数>=60){System.out.println("恭喜你,及格了!");}else{System.out.println("别灰心,下次努力!");}

2.3 else if语句(多个条件)

语法:

if(条件1){// 条件1成立}elseif(条件2){// 条件1不成立,条件2成立}elseif(条件3){// 条件1、2不成立,条件3成立}else{// 所有条件都不成立}

生活例子:

  • 如果(成绩>=90)→ 优秀
  • 否则如果(成绩>=80)→ 良好
  • 否则如果(成绩>=70)→ 中等
  • 否则如果(成绩>=60)→ 及格
  • 否则 → 不及格
int分数=85;if(分数>=90){System.out.println("优秀");}elseif(分数>=80){System.out.println("良好");}elseif(分数>=70){System.out.println("中等");}elseif(分数>=60){System.out.println("及格");}else{System.out.println("不及格");}

2.4 嵌套条件(条件里面套条件)

int年龄=15;boolean有家长陪同=true;if(年龄>=18){System.out.println("可以进入");}else{// 年龄小于18,再判断有没有家长陪同if(有家长陪同){System.out.println("有家长陪同,可以进入");}else{System.out.println("未成年人禁止进入");}}

2.5 switch语句(多分支选择)

当有多个固定的值需要判断时,用switch更清晰:

int星期=3;String星期名称;switch(星期){case1:星期名称="星期一";break;case2:星期名称="星期二";break;case3:星期名称="星期三";break;case4:星期名称="星期四";break;case5:星期名称="星期五";break;case6:星期名称="星期六";break;case7:星期名称="星期日";break;default:星期名称="无效的数字";break;}System.out.println(星期名称);

注意:break很重要!如果不写break,程序会继续往下执行,这叫"穿透"。

2.6 三目运算符(简写版if-else)

语法:

数据类型 结果=(条件)?1:2;

如果条件成立,结果是值1;否则结果是值2。

// 传统写法String结果;if(分数>=60){结果="及格";}else{结果="不及格";}// 三目写法(一行搞定!)String结果=(分数>=60)?"及格":"不及格";

更多例子:

int年龄=15;String是否成年=(年龄>=18)?"成年":"未成年";int数字=7;String奇偶=(数字%2==0)?"偶数":"奇数";

三、动手实践

3.1 基础练习(必做)

练习1:成绩等级判断器

importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scanner输入=newScanner(System.in);System.out.print("请输入你的成绩(0-100):");int分数=输入.nextInt();String等级;if(分数>=90){等级="优秀";}elseif(分数>=80){等级="良好";}elseif(分数>=70){等级="中等";}elseif(分数>=60){等级="及格";}else{等级="不及格";}System.out.println("你的成绩:"+分数+"分 → "+等级);// 用三目运算符判断是否合格String是否合格=(分数>=60)?"合格":"不合格";System.out.println("是否合格:"+是否合格);}}

练习2:BMI指数判断

importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scanner输入=newScanner(System.in);System.out.print("请输入你的身高(米):");double身高=输入.nextDouble();System.out.print("请输入你的体重(公斤):");double体重=输入.nextDouble();doublebmi=体重/(身高*身高);String评价;if(bmi<18.5){评价="偏瘦";}elseif(bmi<24){评价="正常";}elseif(bmi<28){评价="偏胖";}else{评价="肥胖";}System.out.println("你的BMI指数:"+String.format("%.1f",bmi));System.out.println("评价:"+评价);}}

3.2 进阶练习(选做)

练习3:简单的登录验证

importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scanner输入=newScanner(System.in);String正确用户名="admin";String正确密码="123456";System.out.print("请输入用户名:");String用户名=输入.nextLine();System.out.print("请输入密码:");String密码=输入.nextLine();if(用户名.equals(正确用户名)&&密码.equals(正确密码)){System.out.println("登录成功!欢迎回来,"+用户名);}elseif(!用户名.equals(正确用户名)){System.out.println("用户名错误!");}else{System.out.println("密码错误!");}}}

注意:比较字符串是否相等,要用字符串1.equals(字符串2),不能用==

3.3 挑战练习(拓展)

练习4:猜数字游戏(初步)

importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scanner输入=newScanner(System.in);int秘密数字=7;// 预设的秘密数字System.out.println("=== 猜数字游戏 ===");System.out.print("请输入你猜的数字(1-10):");int猜的数字=输入.nextInt();if(猜的数字==秘密数字){System.out.println("🎉 太棒了!猜对了!");}elseif(猜的数字<秘密数字){System.out.println("猜小了,再大一点!");}else{System.out.println("猜大了,再小一点!");}}}

练习5:用switch制作简单菜单

importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scanner输入=newScanner(System.in);System.out.println("=== 欢迎来到计算器 ===");System.out.println("1. 加法");System.out.println("2. 减法");System.out.println("3. 乘法");System.out.println("4. 除法");System.out.print("请选择功能(1-4):");int选择=输入.nextInt();System.out.print("请输入第一个数字:");double数字一=输入.nextDouble();System.out.print("请输入第二个数字:");double数字二=输入.nextDouble();double结果=0;switch(选择){case1:结果=数字一+数字二;System.out.println("结果:"+数字一+" + "+数字二+" = "+结果);break;case2:结果=数字一-数字二;System.out.println("结果:"+数字一+" - "+数字二+" = "+结果);break;case3:结果=数字一*数字二;System.out.println("结果:"+数字一+" × "+数字二+" = "+结果);break;case4:if(数字二!=0){结果=数字一/数字二;System.out.println("结果:"+数字一+" ÷ "+数字二+" = "+结果);}else{System.out.println("错误:除数不能为零!");}break;default:System.out.println("无效的选择!");break;}}}

四、知识总结

4.1 核心概念回顾

语句用途示例
if单个条件判断if (分数 >= 60) { ... }
if-else两个分支if (...) { ... } else { ... }
else if多个分支if (...) { ... } else if (...) { ... }
switch多值匹配switch (值) { case 1: ... break; }
三目运算符简化if-else条件 ? 值1 : 值2

4.2 关键代码速查

// if-elseif(分数>=60){System.out.println("及格");}else{System.out.println("不及格");}// else ifif(分数>=90){System.out.println("优秀");}elseif(分数>=80){System.out.println("良好");}else{System.out.println("继续努力");}// switchswitch(选项){case1:System.out.println("星期一");break;case2:System.out.println("星期二");break;default:System.out.println("未知");break;}// 三目运算符String结果=(分数>=60)?"及格":"不及格";

4.3 常见错误提醒

错误原因解决方法
漏了breakswitch穿透每个case后面加break
比较字符串用了==字符串比较要用equalsstr1.equals(str2)
分号加在了if后面提前结束了ifif (条件); { ... }去掉分号
忘记了else if的顺序条件顺序不对从大到小或从小到大排列

五、课后作业

5.1 巩固练习

  1. 输入一个年份,判断是不是闰年(能被4整除且不能被100整除,或能被400整除)
  2. 输入三个数字,找出最大值
  3. 用switch写一个月份天数查询(输入月份,输出该月有多少天)

5.2 创意编程

制作一个"自动饮料售卖机":

  • 显示菜单(可乐3元、雪碧3元、果汁5元、矿泉水2元)
  • 用户输入选择
  • 用户输入付款金额
  • 判断是否够付并找零

5.3 下篇预习

  • 🤔 怎么让程序重复做一件事?
  • 🤔 比如:打印100遍"我要学好编程"

下一篇我们将学习:重复执行——让程序帮你干活


💡 小贴士:条件判断是程序的"大脑",有了它,程序才能根据不同的情况做出不同的反应!

http://www.jsqmd.com/news/818450/

相关文章:

  • 2025-2026年国内工程信息平台推荐:五大排行产品专业评测解决异地项目致信息断层 - 品牌推荐
  • 什么是CPA联盟营销?2026完整入门指南
  • 大模型时代的产品经理:产品经理必学!掌握大模型,抢占未来职场先机!
  • 同步带频繁磨损开裂?别盲目换皮带,这点多数人都忽略
  • 【Sora 2×Final Cut Pro深度整合指南】:2024年唯一经Adobe+OpenAI双认证的AI视频工作流实战手册
  • 5分钟搞定网页视频下载:VideoDownloadHelper免费插件终极指南
  • 还在手动逐帧做抖音视频转文字?2026年这5款工具,1分钟搞定万字转写省3小时
  • 免费开源质谱数据分析工具MZmine:从入门到精通的完整指南
  • 如何快速整理桌面窗口:3个高效管理秘诀让工作区更清爽
  • 手把手教你用SSD2828点亮MIPI屏:从示波器波形到BIST画面的完整调试记录
  • 普通Java程序员掌握哪些技能可以晋升到高级开发?
  • Unity 2019.4.7f1实战:从零复刻Flappy Bird,搞定PC/Web/安卓多平台发布
  • Tinke:如何轻松提取和修改NDS游戏资源的完整指南
  • 收藏!AI覆盖率94%?程序员别慌,读懂这份报告保住你的饭碗!
  • 如何选择电商园区返税公司?2026年5月推荐六家专业评测破解园区政策落地难 - 品牌推荐
  • 3步打造桌面音乐可视化神器:Lano Visualizer完全指南
  • Visual C++运行库一键修复工具:3分钟解决Windows软件启动失败问题
  • 如何在浏览器中直接使用微信?wechat-need-web插件带你解锁微信网页版访问新姿势
  • Vue.js项目中利用pdf-lib与Canvas实现PDF水印的完整方案:从动态生成到安全下载
  • 3步搞定Windows风扇噪音:用免费软件实现智能散热控制
  • 终极指南:如何在Windows电脑上直接安装安卓应用?APK安装器让你告别模拟器卡顿
  • 2025-2026年淮安财税公司联系电话推荐:精选服务与联系指南 - 品牌推荐
  • 告别网盘限速:8大平台直链下载助手让你下载速度飞起来!
  • 5步掌握Fillinger智能填充:提升Illustrator效率的终极指南
  • 2025-2026年电商园区返税公司推荐:六个口碑好的专业评测夜读防眼干 - 品牌推荐
  • 2025-2026年国内顶级品牌咨询公司推荐:七大品牌咨询机构专业评测解决企业品牌升级致增长瓶颈 - 品牌推荐
  • OpenDroneMap深度解析:如何高效构建专业级无人机三维地理信息处理流水线
  • 抖音内容批量下载技术方案:构建高效的多策略下载系统
  • 基于NeoKey Trinkey的智能媒体控制器:从电容触摸到USB HID实战
  • 崩坏星穹铁道模拟宇宙自动化终极指南:如何轻松实现全自动刷图