Java 流程控制 顺序 分支
2022/4/10 9:12:52
本文主要是介绍Java 流程控制 顺序 分支,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java 流程控制
在程序中,程序运行的流程控制决定程序是如何运行的。
主要是一下三大流程控制语句
- 顺序控制
- 分支控制
- 循环控制
顺序控制
顺序控制:指程序从上到下顺序执行,中间没有任何判断与跳转。
以下例子就是顺序控制
public class ProcessControl { public static void main (String[] args) { int num1 = 123; int num2 = 456; int reslut = num1 + num2; } }
从上到下每条语句依次执行:
- 定义
num1
变量并赋值123
- 定义
num2
变量并赋值456
- 定义变量
result
并将num1
加num2
的和赋给result
这就是以上代码的执行顺序
分支控制
分支控制:让程序有选择的执行,分支控制分为三种
- 单分支
- 双分支
- 多分支
单分支
基本语法:
/* if (判断条件) { 满足条件后需要执行的语句; 可以有多条语句; 但是每条语句结束后需要加上; // ; } */ // 实际应用代码 public class ProcessControl { public static void main (String[] args) { // 这里作为控制开关 boolean control = true; // 如果 control 为 true 就执行 if 里面的语句,如果为 false 直接跳过改代码快执行后面的语句 // 这里的 control 也可以换成其他条件表达式,如 2 > 3 等等,只要表达式最后的返回值是 boolean 类型就可以 if (control) { System.out.println("执行了第一条语句"); System.out.println("执行了第二条语句"); System.out.println("执行了第三条语句"); System.out.println("执行了第四条语句"); System.out.println("执行了最后一句"); } System.out.println("执行了外面的语句"); } }
运行上面代码,并尝试把 contorl
改为 false
看看和 true
的区别
// 如果满足条件后需要执行的语句只有一条也可以这样写 if (2 < 3) System.out.println("条件满足了"); // 虽然可以这样写但还是建议加上 {} 增强代码阅读性
实际应用:
/* 目标 让用户输入年龄 然后判断年龄, 如果小于 18 岁,打印 未成年人请在家长陪同下观看 然后再播放 如果大于 18 岁,直接播放 */ // 先导入扫描器 Scanner import java.util.Scanner; public class AgeJudge { public static void main (String[] args) { // 创建扫描器对象 Scanner input = new Scanner(System.in); // 提示用户输入 System.out.print("请输入你的年龄:"); // print 不换行 println换行 // 创建变量接收用户输入的信息 byte age = input.nextByte(); // 判断年龄 if (age < 18) { System.out.println("未成年人请在家长陪同下观看"); } // 执行播放 System.out.println("播放......"); } }
双分支
双方在就是在单分支的基础上,增加了一条对条件表达式为false
时候的处理分支
基本语法:
if (条件表达式) { // 如果条件表达式为 true执行这个大括号里的代码 需要执行的语句; } else { // 如果条件表达式为 false 执行这个大括号里的代码 需要执行的语句; }
实际应用:
/* 目标 让用户输入年龄 然后判断年龄, 如果小于 18 岁,打印你还年轻 再继续执行后面的程序 如果大于 18 岁,打印你个糟老头子 再继续执行后面的程序 */ // 先导入扫描器 Scanner import java.util.Scanner; public class AgeJudge { public static void main (String[] args) { // 创建扫描器对象 Scanner input = new Scanner(System.in); // 提示用户输入 System.out.print("请输入你的年龄:"); // print 不换行 println换行 // 创建变量接收用户输入的信息 byte age = input.nextByte(); // 判断年龄 if (age < 18) { System.out.println("你还年轻"); } else { System.out.println("你个糟老头子"); } // 继续执行后面的代码 System.out.println("我是后面的代码"); } }
多分支
多分支就是在双分支的中间再插入一个判断条件
// 基本语法 if (条件表达式1) {满足该条件后要运行的代码;} // 如果语句较短{}可以不换行 else if (条件表达式2) { 满足该条件后要运行的代码; // 建议使用行尾风格 } else 既不满足条件1,也不满足条件2 的时候要运行的代码; // {} 可以省略,但不建议
实际应用:
/* 目标: 让用户输入年龄 如果 低于 18 岁 输出 你还未成年 再运行后面的代码 如果 等于 18 岁 输出 你已成年 在运行后面的代码 如果 大于 18 岁 输出 你是该糟老头子 再运行后面的代码 */ // 先导入扫描器 Scanner import java.util.Scanner; public class AgeJudge { public static void main (String[] args) { // 创建扫描器对象 Scanner input = new Scanner(System.in); // 提示用户输入 System.out.print("请输入你的年龄:"); // print 不换行 println换行 // 创建变量接收用户输入的信息 byte age = input.nextByte(); // 判断年龄 if (age < 18) { System.out.println("你还未成年"); } else if (age == 18) { System.out.println("你已成年"); } else { System.out.println("你是个糟老头子"); } // 继续执行后面的代码 System.out.println("我是后面的代码"); } }
注意:
分支控制
- 必须有
if (条件判断) {......}
else if (判断条件) {......}
能拥有无数个- 一个
if
代码块只能拥有0 或 1 个else {......}
如果加了else
只能放该if
代码块的最后
综合应用
将前面学习到的内容综合应用起来
编写一个简单的收银台
需求:
苹果 价格5元/个
桃子 价格6元/个
梨 价格4元/个
西瓜 价格8元/个
总余额 100 元
求 先打印出总余额 即 商品价格列表
要求用户输入 商品编号
输入购买数量
自动扣除余额并打印购买信息
// 导入Scanner import java.util.Scanner; public class Checkout { public static void main (String[] args) { // 余额 double balance = 100; // 商品价格 int apple_price = 5; int peach_price = 6; int pear_price = 4; int watermelon_price = 8; // 先打印余额及价格信息 System.out.println("欢迎光临,您的余额为:" + balance + "元"); System.out.println("==================================="); // 分割线 // 打印价格标头 System.out.println("编号\t商品\t价格"); // 打印商品价格 System.out.println("1\t" + "苹果\t" + apple_price); System.out.println("2\t" + "桃\t" + peach_price); System.out.println("3\t" + "梨\t" + pear_price); System.out.println("4\t" + "西瓜\t" + watermelon_price); // 创建 Scanner 对象 Scanner input = new Scanner(System.in); // 提示用户输入商品编号 System.out.print("请输入您要购买的商品编号:"); // 记录用户输入的商品编号 int product_num = input.nextInt(); // 先判断用户输入的商品编号是否存在 if (product_num > 0 && product_num <= 4) { // 如果存在执行该代码块的代码 // 提示用户输入购买数量 System.out.print("请输入您要购买的数量:"); // 记录用户购买数量 int buy_count = input.nextInt(); // 用户选择苹果 if (product_num == 1) { // 先计算总花费 double total_cost = buy_count * apple_price; // 先判断余额是否足够支付,如果不够打印取消交易 if (total_cost <= balance) { System.out.println("您买苹果共花费了 " + total_cost + "余额还剩 " + (balance - total_cost) + "元\n交易完成"); } else System.out.println("余额不足,取消交易"); } // 用户选择桃子 else if (product_num == 2) { // 先计算总花费 double total_cost = buy_count * peach_price; // 先判断余额是否足够支付,如果不够打印取消交易 if (total_cost <= balance) { System.out.println("您买桃子共花费了 " + total_cost + "余额还剩 " + (balance - total_cost) + "元\n交易完成"); } else System.out.println("余额不足,取消交易"); } // 用户选择梨 else if (product_num == 3) { // 先计算总花费 double total_cost = buy_count * pear_price; // 先判断余额是否足够支付,如果不够打印取消交易 if (total_cost <= balance) { System.out.println("您买梨共花费了 " + total_cost + "余额还剩 " + (balance - total_cost) + "元\n交易完成"); } else System.out.println("余额不足,取消交易"); } // 用户选择西瓜 else if (product_num == 4) { // 先计算总花费 double total_cost = buy_count * watermelon_price; // 先判断余额是否足够支付,如果不够打印取消交易 if (total_cost <= balance) { System.out.println("您买西瓜共花费了 " + total_cost + "余额还剩 " + (balance - total_cost) + "元\n交易完成"); } else System.out.println("余额不足,取消交易"); } } else{ System.out.println("您输入的商品编号有误,请重新尝试"); } } }
以上案例用到了我们前面学习的 变量、转义字符、字符串拼接、Scanner、分支控制、分支嵌套、逻辑运算符、算术运算符,将我们目前学到的东西套用起来能得到这么一个简陋的收银台。
这篇关于Java 流程控制 顺序 分支的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器
- 2024-11-26Java云原生资料:新手入门教程与实战指南
- 2024-11-26JAVA云原生资料入门教程
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程