java学习笔记——程序流程控制

程序流程控制


概述

在java中有三种流程控制结构:顺序结构、选择结构、循环结构
在这里插入图片描述

选择结构

if控制语句

  • 简单if:

语法:if(条件判断表达式){

​ 执行语句

​ }

如果条件判断的表达式返回值是true则可以执行if内部的语句,否则如果是 false就不可以执行。条件表达式的结果一定是true或者false

 /*
    实现程序如果分数大于等于60就及格
    if(条件判断表达式){
        执行语句
    }
    如果if没有{}作为if体,if下面的第一行就是if体
    * */
    public static void main(String[] args) {
        //定义一个变量存储分数
        int score = 80;
        if(score>=60){
            System.out.println("及格");
        }
        System.out.println("程序结束!");
    } 		
  • if…else

语法:if(条件判断表达式){

​ 执行语句

​ }else{

​ 执行语句

​ }

 /*
    if(条件判断表达式){		
	执行语句	  
    }else{		
	执行语句	  
    }
    * */
public static void main(String[] args) {
        //定义一个变量存储分数
        int score = 80;
        if(score>=60){
            System.out.println("及格");
        }else {
            System.out.println("不及格");
        }
    }
  • 多重 if….else if…else

语法: if(条件判断表达式){

​ 执行语句

​ }else if(条件表达式1){

​ 执行语句

​ }else if(条件表达式2){

​ ……

​ }else{

​ }

注意:多重if当遇到第一个满足的表达式条件时执行当前的if语句,就不会再向下去执行

 /*如果成绩大于等于90分且小于等于100分,输出A级,否则如果大于等于80	分,输出B级
    否则如果大于等于70分,输出C级,否则如果大于等于60分,输出D级,
    低于60分,输出E级
    */
    public static void main(String[] args) {
        int score = 85;
        if(score>=90&&score<=100){
            System.out.println("A级");
        }else if(score>=80){
            System.out.println("B级");
        }else if(score>=70) {
            System.out.println("C级");
        }else if(score>=60) {
            System.out.println("D级");
        }else {
            System.out.println("E级");
        }
        //输出结果:B级
    }
  • 嵌套if

在if控制语句中又包含一个或多个if控制语句。嵌套if可以通过外层语句和内层语句的协作来增加程序的灵活性。

语法格式:

if(表达式1){

​ if(表达式2){

​ 语句

​ } else{

​ 语句

​ }

}else if(表达式3){

​ 语句

}else{

​ 语句

}

/*
    如果今天是周六或者周日,则外出。如果气温在30度以上,去游泳,否则去爬山。
    如果今天不是周六或者周日,就要工作。如果天气好,去谈业务;否则在公司。
    * */
    public static void main(String[] args) {
        /*分析:
        外层if判断是否是周六或者周日,内层if判断天气

        * */
        int day = 6;//周六
        int temp = 32;//温度32度
        String weather = "天气好";//天气好
        if(day == 6 || day == 7){
            if(temp>=30){
                System.out.println("游泳");
            }else {
                System.out.println("爬山");
            }
        }else {
            if("天气好".equals(weather)){
                System.out.println("谈业务");
            }else {
                System.out.println("在公司");
            }
        }
        //打印结果:游泳
    }

switch语句

Switch:由上到下用switch中的表达式和值进行比较,如果匹配成功就执行case后的语句,在执行break的时跳出switch,如果一个也没有匹配上就执行default默认情况。

Switch(表达式){

​ case 常量1:

​ 执行语句1;

​ break;

​ case 常量2:

​ 执行语句2;

​ break;

​ ……

​ default:

​ 执行语句 ;

​ break;

}

break可以省略不会报错,如果省略就会穿透执行语句(不管是否能匹配上),直到遇到一个break才会跳出,所以我们不建议省略break。在jdk1.7之前,swtich的表达式只能是整型、字符型或枚举类型。但是jdk1.7后可以使用String。

如果与任何一个case后的常量值都不匹配,就执行default中的语句。

注意:Switch和多重if的区别:If可以做等值判断也可以做区间判断。Switch只能做等值判断,不能做区间判断

//1 --> 周一
    //2-->周二
    //3 --> 周三
    //4-->周四
    // 5 --> 周五
    // 6、7-->周末
    public static void main(String[] args) {
        int day = 5;
        switch(day){
            case 1:
                System.out.println("周一");
                break;
            case 2:
                System.out.println("周二");
                break;
            case 3:
                System.out.println("周三");
                break;
            case 4:
                System.out.println("周四");
                break;
            case 5:
                System.out.println("周五");
                break;
            case 6:
            case 7:
                System.out.println("周末");
                break;
            default:
                System.out.println("数字不是1到7之间的整数!");
        }
    }

三元运算符

语法:逻辑表达式2?表达式1:表达式2

​ ?前面的逻辑表达式如果运算的结果是true,整个表达式的结果就是表达式1?前面的逻辑表达式

​ 如果运算的结果是false,整个表达式的结果就是表达式2

​ 注意:三元运算符适合两个值的判断,适合来代替if else形式

public static void main(String[] args) {
        //1-->男;其他-->女
        int gender = 1;
//        if(gender==1){
//            System.out.println('男');
//        }else {
//            System.out.println('女');
//        }
        char res = gender==1?'男':'女';
        System.out.println(res);
    }

循环结构

循环:就是重复发生的过程(循环一般有重复的前提条件)。

循环分类:while循环,do-while循环,

​ for循环:简化while语法,执行流程同while

​ 增强for循环——针对数组和集合

  • While 循环

语法:

while(表达式){

​ 循环体

}

表达式结果如果是true那么就执行循环体,如果是false就结束循环

先判断,后执行
在这里插入图片描述

public static void main(String[] args) {
        //1+2+3+···+100的求和计算
        int i = 1;
        int sum = 0;//定义变量存储总和
        while (i<=100){
            sum+=i;
            i++;
        }
        System.out.println(sum);
    }

当while(true){},即条件为true时,会出现死循环。

规避死循环/无限循环:每次循环,修改循环变量的值。

  • do…while 循环

语法:

do{

​ 循环体

}while(表达式)

先执行,后判断

注意:do…while和while,前者是先执行循环体,后者是先判断在执行循环体。
在这里插入图片描述

public static void main(String[] args) {
        //1+2+3+···+100的求和计算
        int i = 1;
        int sum = 0;//定义变量存储总和
        do {
            sum+=i;
            i++;
        }while (i<=100);
        System.out.println(sum);//5050
    }
  • for循环

语法:

for(表达式1; 表达式2; 表达式3){

​ 循环体

}

表达式1(变量初始化):计数器的初始化,它只初始化一次

表达式2(循环条件):循环条件的判断,多次执行

表达式3(修改循环变量的值):修改计数器,多次执行

在这里插入图片描述

//1+2+3+···+100的求和计算
        int sum = 0;//定义变量存储总和
        for (int i =1;i<=100;i++){
            sum+=i;
        }
        System.out.println(sum);//5050
  • 多重循环(嵌套循环)

    循环语句内可以再包含循环语句,不同的循环语句可以相互嵌套。

    public static void main(String[] args) {
           /*打印5行5列的*
            *****
            *****
            *****
            *****
            *****
            */
           for (int i=0;i<5;i++){
               //外层打印5行
               System.out.println();
               for (int j=0;j<5;j++){
                   //打印一个*不换行
                   System.out.print("*");
               }
           }
        }
    
  • 使用跳转语句控制程序流程

    • break

      break在循环中的作用是终止当前循环,在switch中是终止switch。

      break用来跳出循环和switch

    //输出数字1——10,若遇到4的倍数程序自动退出
            for (int i = 1;i<=10;i++){
                if(i%4==0){
                    break;
                }
                System.out.println(i);//1  2  3
            }
    
    • continue(只能用在循环中)

      也是来控制循环,在某次循环的时候放弃,后续的接着循环。

      即本次循环后面的代码不执行,直接进入循环条件的位置,开启新一轮循环。

    //输出数字1——10中非4的倍数的数字
            for (int i = 1;i<=10;i++){
                if(i%4==0){
                    continue;
                }
                System.out.println(i);//1  2  3  5  7  9  10
            }
    
    • return

      结束当前方法的执行并退出返回到调用该方法的语句处。

    public static void main(String[] args) {
           //输出数字1——10中4以下的数字
            for (int i = 1;i<=10;i++){
                if(i%4==0){
                    return;
                }
                System.out.println(i);
            }
            System.out.println("循环结束");
        }
        //打印结果:1  2  3
        //当i=4时,执行return语句,结束当前循环,
        // 也结束了整个方法的执行,所以没有打印“循环结束”
    
发布了6 篇原创文章 · 获赞 0 · 访问量 155

猜你喜欢

转载自blog.csdn.net/m0_46183003/article/details/103957863