015 if switch语句

if语句

单选择

package com.kuang.struct;

import java.util.Scanner;

public class IfDemo01 {
    //判断输入的是不是Hello,如果是,打印Hello和End,如果不是,打印End,是一种单选择结构
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入内容: ");
        String s = scanner.nextLine();
                if(s.equals("Hello")){     //此equals和==有区别
                    System.out.println(s);
                }
        System.out.println("End");
        scanner.close();
    }
}

双选择结构

package com.kuang.struct;

import java.util.Scanner;

public class IfDemo02 {
    public static void main(String[] args) {
        //考试大于60 及格 否则不及格
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩: ");
        int score = scanner.nextInt();
        if(score>=60){
            System.out.println("及格");
        }else {
            System.out.println("不及格");
        }
        scanner.close();
    }
}

多选择结构

package com.kuang.struct;

import java.util.Scanner;

public class IfDemo03 {
    public static void main(String[] args) {
        //if多选择结构
        /*
        if语句至多有一个else语句,且在所有的else if语句之后
        if语句可以有若干个else if语句,必须在最后面那个else语句之前

        * */
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩: ");
        int score = scanner.nextInt();
        if(score==100){
            System.out.println("恭喜满分!");
        }else if(score<100 && score>=90){
            System.out.println("A级");
        }else if(score<90 && score>=80){
            System.out.println("B级");
        }else if(score<80 && score>=70){
            System.out.println("C级");
        }else if(score<70 && score>=60){
            System.out.println("D级");
        }else if(score<60 && score>=0){
            System.out.println("不及格");//不及格的范围也要规定
        }else {
            System.out.println("输入的不正确");//防止输入的分数出现负数,大于100分的数,包括所有的其他情况,但是不包括输入字母的情况
        }
        scanner.close();
    }
}

嵌套的if结构

所有的流程控制语句都可以相互嵌套互不影响

思考题:寻找一个数字,在1-100之间。如果用普通的逐个查找的方法效率低下,如果用二分法去查找可以节省大量时间,这里主要突出算法的优势。

假设0-100之间任意一个数字,通过几次判断可以得到最终这个数字?

每次判断就是把0-100的范围折半,最后问题变为2的多少次方等于100,2的7次方等于128,是不是可以说不超过7次判断就能查找到这个数字?

  1. 100/2
  2. 50/2
  3. 25/2
  4. 25/2/2
for (int j = 0; j < 10; j++) {
            int mid=(left+right)/2;//中间位置索引
            //每次用目标值和中间值做对比
            //目标值大于中间值
            if (randonNum>array[mid]){
                //改变其实位置,起始位置等于mid+1,
                也就是从中间位置往右诺一位
                left=mid+1;
            }
            //目标值小于中间语句
            if(randonNum<array[mid]){
                right=mid-1;
            }
            //目标值等于中间语句
            if(randonNum==array[mid]){
                str="恭喜猜中了,目标值为"+array[mid]
                +"循环次数为"+j+"次";
                break;//出结果就结束循环
            }
        }

switch 结构

package com.kuang.struct;

import java.util.Scanner;

public class SwitchDemo1 {
    public static void main(String[] args) {
        System.out.println("请输入成绩等次");
        Scanner scanner = new Scanner(System.in);
        String grade = scanner.next();//从jdk7开始switch支持字符串,但是字符的本质是数字
        //如果直接反编译输入数字也可以
//如果case后面没有加break,会出现case穿透现象,输出匹配的case及其后面的ca1se
        switch (grade){
            case "A":
                System.out.println("优秀");
                break;
            case "B":
                System.out.println("良好");
                break;
            case "C":
                System.out.println("及格");
                break;
            case "D":
                System.out.println("再接再励");
                break;
            case "E":
                System.out.println("挂科");
            default:
                System.out.println("未知的输入");

        }
    }
}

idea实现反编译的方法,用IDEA打开某个java文件,然后点击“工程结构”图标,找到字节码class文件,然后在java源码文件夹中,放置此字节码文件,IDEA即可识别,双击打开此class文件即可,右键选中相应的java源文件可以并列显示,方便对比

posted @ 2021-02-23 21:50  ytytytyt  阅读(82)  评论(0)    收藏  举报