分支结构:基于条件执行语句

2024-01-10 12:12:46

?IF?

- if结构:1条路

? ? ?- 语法:

? ? ? ? ? if(boolean){
? ? ? ? ? ? ? ? 语句块
? ? ? ? ? ?} ??

? ? ?- 执行过程:

? ? ? ?? ? ?判断boolean的值:
? ? ? ?? ? ? ? ? 若为true,则执行语句块1(if整个结束)
? ? ? ?? ? ? ? ? 若为false,则if直接结束

? ?```java
? ? ?//1)偶数的判断:
? ? ?int num = 5; ?//带数(6,5)
? ? ?if(num%2==0){
? ? ? ? ?System.out.println(num+"是偶数");
? ? ?}
? ? ?System.out.println("继续执行...");
? ? ?
? ? ?//2)满500打8折:
? ? ?double price = 300.0; //消费金额 ?带数(600.0,300.0)
? ? ?if(price>=500){ //满500
? ? ? ? ?price *= 0.8; //打8折
? ? ?}
? ? ?System.out.println("最终结算金额为:"+price);
? ? ?
? ? ?//3)判断年龄是否在18到50之间,若满足则输出:"满足条件"
? ? ?int age = 88; ?//带数(25,5,88)
? ? ?if(age>=18 && age<=50){
? ? ? ? ?System.out.println("年龄满足条件");
? ? ?}
? ? ?System.out.println("继续执行...");

? ?- if...else结构:2条路

? ? ?- 语法:

? ? ? ?? ? ?if(boolean){
? ? ? ?? ? ? ? ? 语句块1
? ? ? ?? ? ?}else{
? ? ? ?? ? ? ? ? 语句块2
? ? ? ?? ? ?}

? ? ?- 执行过程:

? ? ? ?? ? ?判断boolean的值:
? ? ? ?? ? ? ? ? 若为true,则执行语句块1(整个结束)
? ? ? ?? ? ? ? ? 若为false,则执行语句块2(整个结束)

? ? ?- 说明:

? ? ? ?? ? ?语句块1和语句块2,必走其中之一------------2选1

? ? ?//1)偶数、奇数的判断:
? ? ?int num = 5; ?//带数(6,5)
? ? ?if(num%2==0){
? ? ? ? ?System.out.println(num+"是偶数");
? ? ?}else{
? ? ? ? ?System.out.println(num+"是奇数");
? ? ?}
? ? ?System.out.println("继续执行...");
? ? ?
? ? ?//2)满500打8折,不满500打9折:
? ? ?double price = 300.0; ?//带数(600.0,300.0)
? ? ?if(price>=500){ //满500
? ? ? ? ?price *= 0.8;
? ? ?}else{ //不满500
? ? ? ? ?price *= 0.9;
? ? ?}
? ? ?System.out.println("最终结算金额为:"+price);
? ? ?
? ? ?//3)判断成绩是否合法,合法则输出"该成绩合法",否则输出"该成绩不合法":
? ? ?int score = 560; //带数(95,-90,560)
? ? ?if(score<0 || score>100){
? ? ? ? ?System.out.println("该成绩不合法");
? ? ?}else{
? ? ? ? ?System.out.println("该成绩合法");
? ? ?}
? ? ?System.out.println("继续执行...");

? - if...else if结构:多条路

? ? ?- 语法:

? ? ? ? ? if(boolean-1){
? ? ? ? ? ? 语句块1
? ? ? ? ? }else if(boolean-2){
? ? ? ? ? ? 语句块2
? ? ? ? ? }else if(boolean-3){
? ? ? ? ? ? 语句块3
? ? ? ? ? }else{
? ? ? ? ? ? 语句块4
? ? ? ? ? }

? ? ?- 执行过程:

? ? ? ? ? 判断boolean-1,若为true则执行语句块1(结束),若为false则
? ? ? ? ? 再判断boolean-2,若为true则执行语句块2(结束),若为false则
? ? ? ? ? 再判断boolean-3,若为true则执行语句块3(结束),若为false则 ? ?执行语句块4(结束)

? ? ?- 说明:

? ? ? ? ? 语句块1/2/3/4,只能执行其中之一------------多选1
?

 ? ?public class ScoreLevel {
? ? ? ? ?public static void main(String[] args) {
? ? ? ? ? ? ?Scanner scan = new Scanner(System.in);
? ? ? ? ? ? ?System.out.println("请输入成绩:");
? ? ? ? ? ? ?double score = scan.nextDouble();
? ? ?
? ? ? ? ? ? ?//带数(-25,888,95,85,65,45)
? ? ? ? ? ? ?if(score<0 || score>100){
? ? ? ? ? ? ? ? ?System.out.println("成绩不合法");
? ? ? ? ? ? ?}else if(score>=90){ //合法
? ? ? ? ? ? ? ? ?System.out.println("A-优秀");
? ? ? ? ? ? ?}else if(score>=80){
? ? ? ? ? ? ? ? ?System.out.println("B-良好");
? ? ? ? ? ? ?}else if(score>=60){
? ? ? ? ? ? ? ? ?System.out.println("C-中等");
? ? ? ? ? ? ?}else{
? ? ? ? ? ? ? ? ?System.out.println("D-不及格");
? ? ? ? ? ? ?}
? ? ? ? ?}
? ? ?}

switch

? ?- switch...case结构:多条路

? ? ?优点:效率高、结构清晰

? ? ?缺点:只能对整数判断相等

? ? ?break:跳出switch

? ? switch可以作用于什么类型的数据上?byte,short,int,char,String,枚举类型

? ??

 ? ?public class CommandBySwitch {
? ? ? ? ?public static void main(String[] args) {
? ? ? ? ? ? ?Scanner scan = new Scanner(System.in);
? ? ? ? ? ? ?System.out.println("请选择功能: 1.取款 ?2.存款 ?3.查询余额 ?0.退卡");
? ? ? ? ? ? ?int command = scan.nextInt();
? ? ?
? ? ? ? ? ? ?switch(command){
? ? ? ? ? ? ? ? ?case 1:
? ? ? ? ? ? ? ? ? ? ?System.out.println("取款操作...");
? ? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ?case 2:
? ? ? ? ? ? ? ? ? ? ?System.out.println("存款操作...");
? ? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ?case 3:
? ? ? ? ? ? ? ? ? ? ?System.out.println("查询余额操作...");
? ? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ?case 0:
? ? ? ? ? ? ? ? ? ? ?System.out.println("退卡操作...");
? ? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ?default:
? ? ? ? ? ? ? ? ? ? ?System.out.println("输入错误");
? ? ? ? ? ? ?}
? ? ? ? ?}
? ? ?}

3. 循环:反复多次执行一段相同或相似的代码

4. 循环三要素:

? ?- 循环变量的初始化

? ?- 循环的条件(以循环变量为基础)

? ?- 循环变量的改变(向着循环的结束变)

? ? ?> 循环变量:在整个循环过程中所反复改变的那个数

? ?```java


? ?while

? ?- while结构:先判断后执行,有可能一次都不执行

? ? ?- 语法:

? ? ? ? ? while(boolean){
? ? ? ? ? ? ?语句块-------------反复执行的代码
? ? ? ? ? ?}

? ? ?- 执行过程:

? ? ? ?? ? ?判断boolean的值,若为true则执行语句块,
? ? ? ?? ? ?再判断boolean的值,若为true则再执行语句块,
? ? ? ?? ? ?再判断boolean的值,若为true则再执行语句块,
? ? ? ?? ? ?如此反复,直到boolean的值为false时,while循环结束

? ? ?- 代码演示:? ? ? ?```java
? ?

 ? ?//1)输出5次"行动是成功的阶梯":
? ? ? ?int times = 0; ?//1)循环变量的初始化
? ? ? ?while(times<5){ //2)循环的条件
? ? ? ? ? ?System.out.println("行动是成功的阶梯");
? ? ? ? ? ?times++; ? ?//3)循环变量的改变
? ? ? ?}
? ? ? ?System.out.println("继续执行...");
? ? ? ?
? ? ? ?/*
? ? ? ? ?执行过程:----带数
? ? ? ? ? ? ? ? ? ? ? ?times=0
? ? ? ? ? ?true ?输出 ?times=1
? ? ? ? ? ?true ?输出 ?times=2
? ? ? ? ? ?true ?输出 ?times=3
? ? ? ? ? ?true ?输出 ?times=4
? ? ? ? ? ?true ?输出 ?times=5
? ? ? ? ? ?false while循环结束
? ? ? ? ? ?输出继续执行...
? ? ? ? */
? ? ? ?
? ? ? ?//2)输出9的乘法表:
? ? ? ?int num = 1; ? ? //3*9=27
? ? ? ?while(num<=9){
? ? ? ? ? ?System.out.println(num+"*9="+num*9);
? ? ? ? ? ?num++; ?//num+=2;
? ? ? ?}
? ? ? ?System.out.println("继续执行...");
? ? ? ?```

? ? ?- 猜数字小游戏代码:

? ? ? ?```java
? ? ? ?public class Guessing {
? ? ? ? ? ?public static void main(String[] args) {
? ? ? ? ? ? ? ?Scanner scan = new Scanner(System.in);
? ? ? ? ? ? ? ?int num = (int)(Math.random()*1000+1); //1到1000之内的随机数
? ? ? ? ? ? ? ?System.out.println(num); //作弊
? ? ? ?
? ? ? ? ? ? ? ?//300(大),200(小),250(对)
? ? ? ? ? ? ? ?System.out.println("猜吧!");
? ? ? ? ? ? ? ?int guess = scan.nextInt(); //1.
? ? ? ? ? ? ? ?while(guess!=num){ //2.
? ? ? ? ? ? ? ? ? ?if(guess>num){
? ? ? ? ? ? ? ? ? ? ? ?System.out.println("太大了");
? ? ? ? ? ? ? ? ? ?}else{
? ? ? ? ? ? ? ? ? ? ? ?System.out.println("太小了");
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ?System.out.println("猜吧!");
? ? ? ? ? ? ? ? ? ?guess = scan.nextInt(); //3.
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?System.out.println("恭喜你猜对了!");
? ? ? ? ? ?}
? ? ? ?}

? ?- do...while结构:先执行后判断,至少执行一次

? ? ?> 要素1与要素3相同时,首选do...while

? ? ?- 语法:

? ? ? ? ?do{
? ? ? ? ? ? 语句块
? ? ? ? ? }while(boolean);

? ? ?- 执行过程:

? ? ? ?? ? ?先执行语句块,再判断boolean的值,若为true则
? ? ? ?? ? ?再执行语句块,再判断boolean的值,若为true则
? ? ? ?? ? ?再执行语句块,再判断boolean的值,若为true则
? ? ? ?? ? ?再执行语句块,如此反复,直到boolean的值为false,则 ? ?do...while结束

? ? ?- 猜数字小游戏代码:

? ? ? ?public class Guessing {
? ? ? ? ? ?public static void main(String[] args) {
? ? ? ? ? ? ? ?Scanner scan = new Scanner(System.in);
? ? ? ? ? ? ? ?int num = (int)(Math.random()*1000+1); //1到1000之内的随机数
? ? ? ? ? ? ? ?System.out.println(num); //作弊
? ? ? ?
? ? ? ? ? ? ? ?//假设num=250
? ? ? ? ? ? ? ?//300(大),200(小),250(对)
? ? ? ? ? ? ? ?int guess;
? ? ? ? ? ? ? ?do{
? ? ? ? ? ? ? ? ? ?System.out.println("猜吧!");
? ? ? ? ? ? ? ? ? ?guess = scan.nextInt(); //1+3
? ? ? ? ? ? ? ? ? ?if(guess>num){
? ? ? ? ? ? ? ? ? ? ? ?System.out.println("太大了");
? ? ? ? ? ? ? ? ? ?}else if(guess<num){
? ? ? ? ? ? ? ? ? ? ? ?System.out.println("太小了");
? ? ? ? ? ? ? ? ? ?}else{
? ? ? ? ? ? ? ? ? ? ? ?System.out.println("恭喜你猜对了");
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?}while(guess!=num); //2
? ? ? ? ? ?}
? ? ? ?}

补充

?1. 变量的作用域/范围:

? ? ? - 从变量的声明开始,到包含它最近的大括号结束

? ?2. 生成随机数:

 ? ? int num = (int)(Math.random()*1000+1); //1到1000
? ? ??
? ? ? Math.random()--------------0.0到0.9999999999999999...
? ? ? *1000----------------------0.0到999.99999999999999...
? ? ? +1-------------------------1.0到1000.9999999999999...
? ? ? (int)----------------------1到1000

总结:

Java中的分支结构用来根据条件执行不同的代码块。主要有if语句、switch语句。

  1. if语句: if语句用于根据给定的条件来决定是否执行某个代码块。 语法结构: if (条件) { // 如果条件为真,执行这里的代码块 } else { // 如果条件为假,执行这里的代码块 }

  2. switch语句: switch语句用于根据不同的取值执行不同的代码块。 语法结构: switch (表达式) { case 值1: // 如果表达式的值等于值1,执行这里的代码块 break; case 值2: // 如果表达式的值等于值2,执行这里的代码块 break; // 可以继续添加更多的case default: // 如果表达式的值与任何case都不匹配,执行这里的代码块 }

if语句和switch语句都是根据条件执行不同的代码块,但有一些区别:

  • if语句是用来检查一个条件是否为真,可以进行复杂的条件判断;而switch语句是用来检查一个值是否等于某个固定的值,只能进行简单的值比较。
  • if语句的条件可以是任意表达式,可以包含逻辑运算符和比较运算符;而switch语句的表达式必须是整型或字符型。
  • if语句可以有多个分支,每个分支可以有不同的条件;而switch语句只有一个表达式,根据不同的值执行相应的分支。

文章来源:https://blog.csdn.net/Flying_Fish_roe/article/details/135489271
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。