3.分支结构和循环结构

1.分支

2.循环

1.分支结构

生活中分支:双向选择。如果走到十字路口。你有几种选择

程序中分支:就是一种选择

1.1if结构

语法格式

if (条件) {

​ 语句体

}

条件:必须是boolean类型的数据

执行流程:当程序运行到if结构的时候,首先判断if小括号里面的条件,如果为true执行语句体。如果为false,跳过语句体,执行下面的代码。

package com.qfedu.app;

/**
 * 这个是if分支结构的代码
 */
public class Demo5 {
    public static void main(String[] args) {
        int money = 10;
        if (money > 12) {
            System.out.println("买个兰博基尼");
        }
        System.out.println("程序结束");
    }
}

1.2if-else结构

语法格式:

if (条件) {

​ 语句体1

} else {

​ 语句体2

}

执行流程:当程序运行到if-else结构的时候,首先判断小括号里面的条件,如果为真,就执行语句体1。如果为假的话就执行语句体2

package com.qfedu.app;

/**
 * if-else结构的代码
 */
public class Demo6 {
    public static void main(String[] args) {
        int a = 10;
        if (a >= 10) {
            System.out.println("今天中吃顿好的,泡面");
        } else {
            System.out.println("西北风各种风");
        }
        System.out.println("呵呵哒");
    }
}

1.3if-else-if结构

语法格式:

if (条件1) {

​ 语句体1

} else if (条件2) {

​ 语句体2

} else if(条件3) {

​ 语句体3

} else if (条件4) {

​ 语句体4

}else {

​ 语句体5

}

执行流程:

​ 当程序运行到if-else if 之后,匹配if 之后的所有的条件。如果匹配为真,就是输出当前的语句体s

package com.qfedu.app;

/**
 * 这个是if-else-if 的代码
 */
public class Demo7 {
    public static void main(String[] args) {
        /*
        * 学生的成绩:
        *       90-100  打印  秀儿
        *       80-90   打印  良好
        *       70-80   打印  一般
        *       60-70   打印  及格
        *       60以下  打印  耗子尾汁
        *
        * */
        int score = 90;
        if (score >= 90 && score <= 100) {
            System.out.println("秀儿");
        } else if (score >= 80) {
            System.out.println("良好");
        } else if (score >= 70) {
            System.out.println("一般");
        } else if (score >= 60) {
            System.out.println("及格");
        } else {
            System.out.println("耗子尾汁");
        }
    }
}

1.4switch-case分支

语法格式:

switch(条件匹配) {

​ case 常量:

​ 语句1;

​ break;

​ case 常量:

​ 语句2;

​ break;

​ case 常量:

​ 语句3;

​ break;

​ default:

​ 语句4;

​ break;

}

执行流程:当程序运行到了switch,后面的小括号的变量的值,去匹配case后面的常量。如果匹配上了就是当前语句。如果匹配不上的话,就接着匹配,直到匹配完所有的常量。如果发现都没有匹配上,就执行default下面的语句

break:打断!!!

2.循环结构

2.1为什么要使用循环结构

在代码中如果出现了大量的重复的功能。可以使用cv大法。可以解决的,但是会出现一些问题:

​ 1.代码过于臃肿

​ 2.代码的阅读性极差

​ 3.代码维护极差

2.2while循环

语法格式:

while (循环条件的判断){

​ 循环体

}

执行流程:代码执行到了while以后。首先判断while 之后的小括号里面的循环条件是否为true。如果为true的话就继续执行

循环体。直到小括号里面的条件为false的时候,结束循环了。

package com.qfedu.app;


/**
 *
 */
public class Demo12 {
    public static void main(String[] args) {
        //打印出来10行吃饭睡觉  打豆豆
        /*
        * 当  num = 10    10 >0   true 输出第一次   num自身减1 num =9
        *当 num = 9   9>0 true   输出第二次  num自身减1  num=8
        *当num = 8  8> 0  true  输出第三次  num自身减1  num=7
        * .....
        *当num = 1 1>0  true  输出第10次  num 自身减1  num = 0
        * 当num = 0 0>0 false 结束循环
        * */
        //一个循环最起码有三个条件:初始值,终止条件,循环条件
        int num = 10;
        while (num > 0 ) {
            System.out.println("吃饭,睡觉,打豆豆");
            num--;
        }
    }
}

2.3do-while循环

语法格式:

do {

​ 循环体

} while(循环条件);

执行流程:程序运行到do-while的时候,首先要执行do后面大括号里面循环体。然后再判断while后面小括号里面的条件。如果条件为false。循环结束了,就会打印一次循环体。如果条件为true的话,就继续执行do后面大括号里面的循环体。

package com.qfedu.app;

public class Demo13 {
    public static void main(String[] args) {
        //还打印吃饭睡觉 打豆豆
        /*
        * 打印了第一次 吃饭睡觉打豆豆  num自身减1   9>0  true
        * 打印了第二次 吃饭睡觉打豆豆  num自身减1   8>0  true
        * 打印了第三次 吃饭睡觉打豆豆  num自身减1   7>0  true
        * ......
        * 打印第9次吃饭睡觉打豆豆  num 自身减1     1>0  true
        * 打印第10次吃饭睡觉打豆豆  num 自身减1    0>0 false  结束循环
        * */
        int num = 10;
        do {
            System.out.println("吃饭睡觉打豆豆");
            num--;
        } while(num > 0);
    }
}

while循环直接判断条件,如果条件判断不成立,就不执行。do-while先执行一次。然后再判断条件是否成立。

以后开发中只用while

2.4for循环

语法格式:

for(条件1;条件2;条件3) {

​ 语句体

}

执行流程:首先执行条件1,再执行条件2。条件2是一个返回值布尔类型的表达式。如果条件2为true,就执行语句体。

然后再执行条件3。这样循环下去,直到条件2为false.

package com.qfedu.app;

public class Demo14 {
    public static void main(String[] args) {

        /*
        * int i = 0 声明了一个i变量 条件1
        * i< 10  终止条件     条件2
        * i++  循环条件         条件3
        *
        *
        * 当i = 0(第一个条件)  0<10(第二个条件) true 打印一次吃饭睡觉打豆豆 (语句体) 再看第三个条件 i自身加1 i=1
        * 当i = 1 1<10  true 打印一次吃饭睡觉打豆豆  再看第三个条件 i自身加1 i=2
        * 当i = 2 2<10  true 打印一次吃饭睡觉打豆豆  再看第三个条件 i自身加1 i=3
        *
        *.......
        * 当i = 8 8<10  true 打印一次吃饭睡觉打豆豆  再看第三个条件 i自身加1 i=9
        * 当i = 9 9<10  true 打印一次吃饭睡觉打豆豆  再看第三个条件 i自身加1 i=10
        * 当i = 10 10 < 10 false 终止
        * */
        for(int i = 0; i < 10; i++) {
            System.out.println("吃饭睡觉打豆豆");
        }
    }
}

作业

1.打印100以内的偶数
2.打印100以内的奇数
3.100以内的逢7过
4.打印99乘法表
今天的案例都必须敲上3遍以上
金山打字

补充知识点

Scanner的使用(以后不用!!!)

代码中需要用户修改数据,从而满足其他的需求。但是我们不能要求用户修改代码。重新编译,重现执行
需要在代码中提供给用户一个输入数据的方式:
1.技能点(导包)
	在class 之前
	import java.util.Scanner
2.创建一个scanner的一个"变量"
	Scanner scanner = new Scanner(System.in);
3.使用scanner扫描器一些方法。从键盘上面获取你输入的数据;
	获取int类型数据   int num = scanner.nextInt();
	获取float类型数据  float num = scanner.nextFloat();
	获取double类型的数据  double num = scanner.nextDouble();
	获取char类型的数据   char ch = scanner.nextLine().charAt(0);
package com.qfedu.app;

//导包
import java.util.Scanner;
//是java封装好的一个类。类的作用就是控制台的输入
public class Demo8 {
    public static void main(String[] args) {
        int score = 0;
        //1.创建一个Scanner的对象
       Scanner scanner = new Scanner(System.in);
        System.out.println("亲!请输入一个学生的成绩");
        //2.从键盘获取一个数据,并把这个数据赋值给score
        score = scanner.nextInt();
        //3.用户输入的数据的合法性
        if (score < 0 || score > 100) {
            System.out.println("亲,您输入的数据不合法!!!");
            //退出程序
            System.exit(0);
        }
        if (score >= 90 && score <= 100) {
            System.out.println("秀儿");
        } else if (score >= 80) {
            System.out.println("良好");
        } else if (score >= 70) {
            System.out.println("一般");
        } else if (score >= 60) {
            System.out.println("及格");
        } else {
            System.out.println("耗子尾汁");
        }

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值