day 04-控制结构学习

第4章 程序控制结构目录顺序分支(if else swith)循环(for, while, do while, 多重循环*)breakcontinereturn介绍在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句。顺序控制分支控制循环控制顺序控制结构介绍:程序从上到下逐行地执行,中间没有任何判断和跳转。举例和注意事项Java中定义成员变量时采用合法的前向引用。如:public class Test{int num1
摘要由CSDN通过智能技术生成

第4章 程序控制结构

目录

  • 顺序
  • 分支(if else swith)
  • 循环(for, while, do while, 多重循环*)
  • break
  • contine
  • return

介绍

在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句。

  1. 顺序控制
  2. 分支控制
  3. 循环控制

顺序控制结构

  • 介绍:程序从上到下逐行地执行,中间没有任何判断和跳转。

  • 举例和注意事项

    Java中定义成员变量时采用合法的前向引用。如:

    public class Test{
         
    int num1 = 12;
    int num2 = num1 + 2;
    }
    //错误形式如下:
    public class Test{
         
    int num2 = num1 + 2; 
    int num1 = 12;
    }
    
  • 图示:中间没有判断,直接顺序走即可

    在这里插入图片描述

分支控制结构

  • 介绍:让程序有选择的进行执行,分支控制有三种

  • 分类:1.单分支 2.双分支 3.多分支

单分支

  • 基本语法

    if(条件表达式) {
         
        执行代码块;(可以有多条语句.)
    }
    
  • 说明:当条件表达式为ture时,就会执行{}中的代码。如果为false就不执行。

    特别说明:如果{}中只有一条语句,则可以不用{},但是建议写上{}

  • 案例说明If01.java

    //编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出"你年龄大于18,要对自己的行为负责,送入监狱”
    package chapter05;
    import java.util.Scanner;//IDEA中自动导入了包
    public class If01 {
         
        public static void main(String[] args) {
         
            //编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出"你年龄大于18,要对自己的行为负责,送入监狱
            //思路分析:1.定义一个Scanner对象,接收输入的年龄
            //2.把年龄保存到一个变量 int age
            //3.使用if判断,输出对应的信息
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入年龄");
            int age = scanner.nextInt();
            if (age > 18) {
         
                System.out.println("你年龄大于18,要对自己的行为负责,送入监狱");
            }
            
            System.out.println("程序继续……");
    
            scanner.close();//记住关闭接收终端
        }
    }
    
  • 单分支流程图

    在这里插入图片描述

双分支

  • 基本语法

    if(条件表达式) {
         
        执行代码块1;
    }else {
         
        执行代码块2;
    }
    
  • 说明:当条件表达式成立,即执行代码块1,否则执行代码块2。如果执行代码块只有一条语句,则{}可以省略,否则,不能省略。

  • 案例演示lf02.java

    //编写一个程序,可以输入人的年龄如果该同志的年龄大于18岁则输出"你年龄大于18,要对自己的行为负责,送入监狱。"否则,输出"你的年龄不大这次放过你了。"
    package chapter05;
    import java.util.Scanner;
    public class If02 {
         
        public static void main(String[] args) {
         
    
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入年龄:");//新建键盘接收
    
            int age = scanner.nextInt();//保存年龄int变量
    
            if (age > 18) {
         //进行if判断
                System.out.println("你年龄大于18,要对自己的行为负责,送入监狱。");
            }else {
         //双分支
                System.out.println("你的年龄不大这次放过你了。");
            }
        
            System.out.println("程序继续……");
            scanner.close();
            
        }
    }
    
  • 双分支流程图

    在这里插入图片描述

练习题1-单双

  1. 嵌套

    在这里插入图片描述

    答案:韩顺平教育~

  2. 练习

    //lfExercise01.java
    //2.编写程序,声明2个double型变量并赋值。判断第1个数大于10.0,且第2个数小于20.0,打印两数之和
    //3.[课后自己练]定义两个变量int,判断两者的和,是否能被3又能被5整除,打印提示信息
    //4.判断一个年份是否是闰年,闰年的条件是符合下面二者之一:(1)年份能被4整除,但不能被100整除;(2)能被400整除
    int a = 12;
    int b = 34;
    if ((a+b) % 3 == 0 && (a + b) % 5 == 0) {
         
     System.out.println("和能被3和5整除");
    }
    
    int years = 1;
    if((years % 4 ==0 && years % 100 != 0) 
       || years % 400 == 0) {
         
        System.out.println("闰年");
    }
    
    

多分支

  • 基本语法

    if(条件表达式1) {
         
        执行代码块1;
    }else if(条件表达式2) {
         
        执行代码块2;
    }
    ......
    else{
         
        执行代码块n;
    }
    //特别说明:(1)多分支 可以没有else,如果所以的条件表达式都不成立,则一个执行入口都没有 (2)如果有else,如果所有的条件表达式都不成立,则默认执行else代码块
    
  • 说明

    1.当条件表达式1成立时,即执行代码块1;
    2.如果表达式1不成立,才去判断表达式2是否成立;
    3.如果表达式2成立,就执行代码块2;
    4.以此类推,如果所有的表达式都不成立;
    5.则执行else的代码块,注意,只能有一个执行入口。

  • 图示

    在这里插入图片描述

练习题2-多

案例1

//案例lf03.java
/*
输入保国同志的芝麻信用分:
如果:
1.信用分为100分时,输出信用极好;
2.信用分为(30, 99]时,输出信用优秀;
3.信用分为[60,80]时,输出信用一般;
4.其它情况,输出信用不及格
5.请从键盘输入保国的芝麻信用分,并加以判断
*/
package chapter05;
import java.util.Scanner;
public class If03 {
   
    public static void main(String[] args) {
   

        Scanner scanner = new Scanner(System.in);//接收数据

        System.out.println("请输入保国同志的芝麻信用分:");
        int grade = scanner.nextInt();//保存变量

        if (grade >=1 && grade <= 100){
   
        //限定范围-->此处还可以进行使用异常处理机制对输入的数据不是整数,而是hello进行处理!!!

            if (grade == 100) {
   //多分支判断
                System.out.println("信用极好");
            } else if (grade > 80 && grade <= 99) {
   
                System.out.println("信用优秀");
            } else if (grade >= 60 && grade <= 80) {
   
                System.out.println("信用一般");
            } else {
   
                System.out.println("信用不及格");
            }

        } else {
   
            System.out.println("输入数据不合法,请重新输入!");
        }

        scanner.close();//接收关闭
        
    }
}

案例2

//代码,看看输出什么?
boolean b = true;
if(b = false) {
   // 如果写成if(b= false)能编译通过吗?如果能,结果是?-->因为if判断的括号里是false,判断结果就是错,括号里是true,结果就是对(此处为赋值)
System.out.println("a");
} else if(b) {
   
System.out.println("b");
} else if(!b) {
   
System.out.println("c");
} else {
   
System.out.println("d");
}

嵌套分支

  • 基本介绍
    在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外层分支。建议:不要超过3层(可读性不好)

  • 基本语法

    if() {
         
        if() {
         
            //if-else...
        }else{
         
            //if-else...
        }
    }
    
  • 案例1

    //参加歌手比赛,如果初赛成绩大于8.0进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组。可以让学员先练习下,输入成绩和性别,进行判断和输出.Nestedlf.java
    //提示:double score;char gender;
    //接收字符:char gender = scanner.next().charAt(0)
    
    package chapter05;
    
    import java.util.Scanner;
    
    public class NestedIf {
         
        public static void main(String[] args) {
         
    
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入成绩:");
            double score = scanner.nextDouble();
            if (score > 8.0) {
         
    
                System.out.println("请输入性别:");
                char gender = scanner.next().charAt(0);//该处是如何将字符串转成一个字符!
                if (gender == '男') {
         
                    System.out.println("恭喜您进入男子组决赛!");
                } else if (gender == '女'){
         
                    System.out.println("恭喜您进入女子组决赛!");
                } else {
         
                    System.out.println("输入类型有误,请重新输入!");
                }
    
            } else {
         
                System.out.println("很遗憾您被淘汰!");
            }
    
            scanner.close();
    
        }
    }
    

switch分支

  • 基本语法
  1. switch(表达式) {
         
        case 常量1: //-->翻译就是当...
            语句块1;
            break;
        case 常量2:
            语句块2:
            break;
        ...
        case 常量n:
            语句块n; 
            break;
        default:
        default语句块;
            break;
    }
    
  • switch说明
  1. switch关键字,表示swtich分支

  2. 有一个表达式就对应一个具体的返回值

  3. case 常量1:当表达式的值等于常量1,就执行语句块1

  4. break:表示退出swtich

  5. 如果和 case 常量1匹配,就执行语句块1,如果没有匹配,就继续匹配 case 常量2

  6. 如果一个都没有匹配上,执行default

  • 示意图
  1. 如果没有break会存在case穿透,执行完所有语句块!

    在这里插入图片描述

  • 快速入门
  1. 案例Switch01.java

    //1.请编写个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g
    //2.a表示星期一,b表示星期二
    //3.根据用户的输入显示相应的信息要求使用switch语句完成
    package chapter05;
    
    import java.util.Scanner</
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值