循环分支语句

1 分支结构
1.1 概述
顺序结构的程序虽然能解决计算、输出等问题
但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构

1.2 形式


1.3.1 练习:商品打折案例
创建包: cn.tedu.basic
创建类: TestDiscount.java
需求: 接收用户输入的原价。满1000打9折;满2000打8折;满5000打5折

package cn.tedu.basic;

import java.util.Scanner;

/**需求:接收用户输入的原价,满1000打9折,满2000打8折,满5000打5折*/
public class TestDiscount {
    public static void main(String[] args) {
        //1.提示用户输入原价
        System.out.println("请输入商品原价:");
        //2.接收用户输入的原价
        double price = new Scanner(System.in).nextDouble();                     
        //3.计算打折后的价格
        //3.1定义变量用来保存打折后的价格
        double count = price;//初始值是商品的原价
        //3.2判断用户的打折段位并打折
        if(price >= 5000) {//满5000
            count = price *0.5;//打5折
        }else if(price >= 2000) {//满2000
            count = price * 0.8;//打折8折
        }else if(price >= 1000) {//满1000
            count = price *0.9;//打9折
        }
//        if(1000 <= price && price< 2000) {
//            count = price *0.9;
//        }else if(2000 <= price && price < 5000) {
//            count = price * 0.8;
//        }else if(price >= 5000) {
//            count = price *0.5;
//        }
        //3.3输出用户实际支付的价格
        System.out.println("您实际应该支付:"+count);
    }
}
1
1.3.2 练习: 统计学员得分段位案例
package cn.tedu.basic;

import java.util.Scanner;

/*本类用于判断学员分数的档位*/
public class TestScore {
    public static void main(String[] args) {
        //1.提示并接收学员的分数
        System.out.println("请输入你的分数:");
        int score = new Scanner(System.in).nextInt();
        /*90分及以上  优秀
         *80-89 良好
         *70-79 中等
         *60-69 及格
         *60分及以下 不及格 */
        
        /**为了增强程序的健壮性,如果用户输入的数据不符合规则,就结束*/
        if(score <0 || score >100 ) {
            System.out.println("输入数据不合法,请重新输入!!!");
        }else {
            //2.判断分数的段位,并输出结果
            if(score >= 90) {//大于90
                System.out.println("优秀!");
            //}else if(score>=80 && score <=89) {
            }else if(score>=80) {//[80,90)
                System.out.println("良好!");
            }else if(score>=70) {//[70,80)
                System.out.println("中等!");
            }else if(score>=60) {//[60,70)
                System.out.println("及格!");
            }else {//小于60
                System.out.println("不及格!");
            }
        }    
    }
}

1
2
3
4
 
2 switch结构
2.1 概述
switch case 语句用来判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
当一个case成立,从这个case向后穿透所有case,包括default,直到程序结束或者遇到break程序才结束

2.2 形式


2.3 练习:数字匹配
创建包: cn.tedu.basic
创建类: TestSwitch.java

package cn.tedu.basic;
/*本类用于练习switch结构*/
/**总结:
 * 1.变量a的类型byte short char int String
 * 2.会拿着变量a的值依次与case后的值做比较,如果不加break,
 *        会向后穿透所有case,包括default
 * 3.如果设置了default“保底选项”,并且没有任何case匹配到的话,就执行default
 * 4.break与default是可选项,根据具体业务来决定加不加
 * */
public class TestSwitch {
    //1.创建程序的入口函数main
    public static void main(String[] args) {
        //2.定义一个变量
        int a = 19;
        //3.完成switch结构的测试
        switch(a) {
            case 1 : System.out.println(1);break;
            case 2 : System.out.println(2);break;
            case 3 : System.out.println(3);break;
            case 4 : System.out.println(4);break;
            case 5 : System.out.println(5);break;
            default : System.out.println(0);
        }        
    }
    
}


 
2.4 练习: Switch中的String类型
使用类: TestSwitch.java

public class TestSwitch {
    public static void main(String[] args) {
    
        String s = "Friday";
        switch(s) {
            case "Monday" : System.out.println("星期一吃火锅");break;
            case "Tuesday" : System.out.println("星期二吃烤肉");break;
            case "Wednesday" : System.out.println("星期三吃面条");break;
            case "Thursday" : System.out.println("星期四吃小龙虾");break;
            case "Friday" : System.out.println("星期五吃冒菜");break;
            case "Saturaday" : System.out.println("星期六吃减脂餐");break;
            case "Sunday" : System.out.println("星期日吃海鲜粥");break;
            
            default : System.out.println("想吃啥吃啥吧");
        }
    }
}
 
2.5 switch结构的注意事项
switch 语句中的变量类型可以是: byte、short、int 、char、String(jdk1.7以后支持)
switch 语句可以拥有多个 case 语句
每个 case 后面跟一个要比较的值和冒号,且此值的数据类型必须与变量的数据类型一致
当变量值与 case 语句值相等时,开始执行此case 语句的内容,执行完会判断此行代码是否有break,如果有,结束执行,如果没有,会继续向后执行穿透所有case,包括default
switch 语句可以包含一个 default 分支,该分支一般是写在switch 语句的最后
如果在default之前的case有break,则default不会执行
3 循环结构
3.1 for概述
循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。
它由循环体中的条件,判断继续执行某个功能还是退出循环。
根据判断条件,循环结构又可细分为先判断后执行的循环结构和先执行后判断的循环结构。

3.2 for形式


3.3 for循环执行顺序
我们明明只写了一句打印语句,为什么打印了多个数字呢?
希望通过下图帮你理解for循环的执行顺序:


3.4 练习:打印100次slogon/打印0到10/打印10到0/打印8,88,888,8888,
package cn.tedu.basic;
/**本类用来测试循环结构for循环*/
public class TestFor {
    public static void main(String[] args) {
        //需求:打印100次自己的宣言
        //for(开始条件;循环条件;更改条件){循环体;}
        for(int i = 1;i<=100;i++) {
            System.out.println(“又不是没那条件,干就完啦!”);
        }
        //需求:打印0到10
        //for(开始条件;循环条件;更改条件){循环体;}
        //0 1 2 3 4 5 6 7 8 9 10
        //从哪开始:0
        //到哪结束:10
        //怎么变化:+1 ++
        for(int i = 0;i<=10;i++) {
            System.out.println(i);
        }
        System.out.println("**********************");
        //需求:打印10到0
        //10 9 8 7 6 5 4 3 2 1 0
        //从哪开始:10
        //到哪结束:0
        //怎么变化:-1  --
        //for(开始条件;循环条件;更改条件){循环体}
        for(int i = 10 ;i >= 0;i--) {
            System.out.println(i);
        }
        //需求:打印8,88,888,8888,
        //8 88 888 8888
        //从何开始:8
        //到哪结束:8888
        //如何变化:*10+8
        for(int i =8 ; i <= 8888 ; i=i*10+8) {
            System.out.print(i+",");//使用的是print(),打印后不换行
        }
    }
}
 
3.5 练习:求[1,100]以内元素之和,偶数之和,偶数个数
package cn.tedu.basic;
/*本类用于测试for循环结构2*/
public class TestFor2 {
    public static void main(String[] args) {
        //m1();
        //m2();
        m3();
    }
    /*需求:求出1-100以内所有偶数的个数*/
    private static void m3() {
        //1.定义变量用来保存偶数的个数
        int count = 0;
        //2.创建循环,依次循环1-100范围内的数
        for(int i = 1;i<101;i++) {
            //3.过滤出来要统计个数的偶数
            if(i % 2 ==0) {//说明这是一个偶数
                //4.对偶数的个数进行累计
                //count = count +1;
                count++;
                //++count;
            }
        }
        //5.打印最终统计的个数
        System.out.println(count);
    }
    /*需求:求出1-100以内所有偶数的和*/
    private static void m2() {
        //1.定义变量用来保存最终求和的结果
        int sum = 0;
        //2.创建循环,依次循环1-100范围内的数
        for(int i = 1;i <101;i++) {
            //3.过滤出来需要累加的偶数
            if(i%2 == 0) {
            //if(i%2 == 1) {//过滤奇数
                //4.能进来,说明是偶数,累加
                sum = sum +i;
            }
        }
        //5.在for循环结束以后,打印所有偶数累加的和
        System.out.println(sum);
    }
    /*需求:求出1-100以内所有数的和*/
    private static void m1() {
        //1.定义一个变量用来保存求和的结果
        int sum = 0;
        //2.创建循环,依次循环1-100范围内的数
        for(int i = 1;i<=100;i++) {
            //3.将本轮循环到的数字累加到最终的结果中
            sum = sum + i;
        }
        //4.打印最终累加的结果
        System.out.println(sum);
    }
}
 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

峰sir01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值