2020.7.8课堂笔记(三元表达式、debug、if、if-else、多重if、switch条件判断案例)

Demo0:用于演示三元表达式的使用:
知识点:
1、三元表达式:条件(boolean)?条件的结果为true时整个表达式的值:条件的结果为false时整个表达式的值
2、定义性别的时候建议使用gender而不要使用sex(含有贬义)
3、快速注释与取消注释的快捷键:
单行注释:Ctrl+/
多行注释:Ctrl+Shift+/

import java.util.Scanner;
/**
 * @Author: ChaoKeAiMuZhi
 * @Date: 2020/7/8 13:47
 * @Description:用于演示三元表达式的使用
 **/
public class Demo0 {
    public static void main(String[] args) {
        //性别:男,女|male,female|man,woman|1,0
/*        int sexNum =1;
        System.out.println(sexNum==1);
        //第一部分 条件判断 对结果进行判断 如果为真 输出第一部分 如果为假 则是第二部分
        String sex=sexNum==1?"male":"female";
        System.out.println(sex);*/
        //三元表达式:
        //条件?条件的结果为true时整个表达式的值:条件的结果为false时整个表达式的值
        //所谓的条件说白了就是一个boolean        
        //练习:判断一个数是否为偶数(使用scanner接收):
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int num=sc.nextInt();
        String result=num%2==0?"偶数":"奇数";
        System.out.println(result);
    }
}

Demo1:
知识点:
1、小数保留2位或者4位(常规操作)
2、debug相关:
程序调试debug:
​ 1、打个断点
​ 2、使用debug来运行程序
​ 3、单步执行查看程序流程及变量的值
Step over(最常用的)
Step into进入到方法里查看方法的执行情况
红色的箭头用来查看程序运行过程中使用到了别人的源代码的情况下,强制进入Force Step into
当光标停在这一行就等待执行,还没有运行
当涉及到条件判断的时候,鼠标移动到条件判断的地方,可以看到true false

/**
 * @Author: ChaoKeAiMuZhi
 * @Date: 2020/7/8 14:17
 * @Description:
 **/
public class Demo1 {
    public static void main(String[] args) {
        //走debug
        double score=88.88;//小数保留2位或者4位(常规操作)
        if(score>90){
            System.out.println("老师奖励他iPhone 11 Pro");
        }
        System.out.println("程序结束");
    }
}

Demo2:
知识点:
1、当条件判断需要同时满足两个条件的时候:
if(条件1&&条件2){ 执行语句 }
2、当条件判断满足任意一个条件就可以执行的时候:
if(条件1||条件2){ 执行语句 }
条件语句结果均为boolean类型

/**
 * @Author: ChaoKeAiMuZhi
 * @Date: 2020/7/8 14:44
 * @Description:
 **/
public class Demo2 {
    public static void main(String[] args) {
        int javaScore=91;
        int musicScore=81;
        /*if(javaScore>90 && musicScore>80){
            System.out.println("老师给奖励");
        }
        if(javaScore==100 && musicScore>70){
            System.out.println("老师给奖励");
        }*/
        boolean result1=javaScore>90 && musicScore>80;
        boolean result2=javaScore==100 && musicScore>70;
        /*if((javaScore>90 && musicScore>80) || (javaScore==100 && musicScore>70)){
            System.out.println("老师给奖励!");
        }*/
        if(result1 || result2){
            System.out.println("老师给奖励!!");
        }
    }
}

Demo3:
if(条件判断){条件判断为true语句1}else{条件判断为false语句2}
可以用三目表达式达到相同的效果

import java.util.Scanner
/**
 * @Author: ChaoKeAiMuZhi
 * @Date: 2020/7/8 14:51
 * @Description:
 **/
public class Demo3 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入张浩同学的java考试成绩:");
        int score=input.nextInt();
        if(score>90){
            System.out.println("老师奖励他iPhone X");
        }else{
            System.out.println("老师惩罚他蹲一天马步");
        }
//        //使用三元表达式
//        String result=score>90?"老师奖励他iPhone":"老师惩罚他蹲马步一天";
//        System.out.println(result);
        System.out.println("程序结束");
    }
}

插入错题分析:
15. 在Java中,下列代码运行的结果是( )

public static void main(String[] args) { 
	int a=1, b=2, c=3; 
	if (a<0)         
		if (b<0) c=10; 
		else c=20;      
	System.out.println(c); 
} 

正确答案:输出结果是3
反编译class文件:

public class Test03 {
    public Test03() {
    }
    public static void main(String[] args) {
        int a = 1;int b = 2;int c = 3;
        if (a < 0) {
            if (b < 0) {
            c = 10;
            } else {
                c = 20;
            }
        }
        System.out.println(c);
        }
}

知识点:if else按照就近匹配的原则进行匹配
if只控制到分号;为止的那一句话
结论:缩进和括号的使用,阅读体验更好

Demo4:多重if实现优良中差的分类
在使用多重if的时候,从范围最小的先来写,代码从上到下,从左往右执行
可以学习使用 return 去掉多余的 else:

/**
 * @Author: ChaoKeAiMuZhi
 * @Date: 2020/7/8 15:03
 * @Description:多重if实现优良中差的分类
 **/
public class Demo4 {
    public static void main(String[] args) {
        int score=85;
        //三种条件只取其一不判断多次,范围最小的最先来写

/*        if(score>90){
            System.out.println("优秀");
        }else if(score>=80){
            System.out.println("良好");
        }else if(score>=60){
            System.out.println("中等");
        }else{
            System.out.println("差");
        }
*/
        if(!(score>=60)){
            System.out.println("差");
            return;
        }
        if(!(score>=80)){
            System.out.println("中等");
            return;
        }
        if(!(score>=90)){
            System.out.println("良好");
            return;
        }
        System.out.println("优秀");
    }
}

Demo5:百米赛跑跑入10秒内的学生有资格进决赛,根据性别分别进入男子组和女子组
知识点:字符串的比较使用equls方法,==会对字符串引用的地址进行比较,使用return优化多重if

import java.util.Scanner;
/**
 * @Author: ChaoKeAiMuZhi
 * @Date: 2020/7/8 15:54
 * @Description:百米赛跑跑入10秒内的学生有资格进决赛,
 * 根据性别分别进入男子组和女子组
 **/
public class Demo5 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入百米赛跑的成绩:");
        double second=sc.nextDouble();
        String gender="男";
/*        if (second<10){
            System.out.println("恭喜您进入决赛!");
            System.out.println("请输入您的性别");
            gender=sc.next();
            if (gender.equals("男")){
                System.out.println("您进入到男子组。");
            }else{
                System.out.println("您被分配到女子组");
            }
        }else{
            System.out.println("您没能进入决赛!");
        }
*/

        if(!(second<10)){
            System.out.println("您没能进入决赛!");
            return;
        }
        System.out.println("恭喜您进入决赛!");
        System.out.println("请输入您的性别");
        gender=sc.next();
        if (!(gender.equals("男"))){
            System.out.println("您被分配到女子组");
            return;
        }
        System.out.println("您进入到男子组");
    }
}

Demo6:以出生的年份末2位来作为判断
知识点:case条件判断使用break跳出,否则会一直执行下去,直到遇到break或者执行结束
default通常放在最后,可以不加break,如果default在最前影响阅读,而且要加break

import java.util.Scanner;
/**
 * @Author: ChaoKeAiMuZhi
 * @Date: 2020/7/8 16:20
 * @Description: 以出生的年份末2位来作为判断
 **/
public class Demo6 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入出生年份的后两位:");
        byte year=sc.nextByte();
        switch (year){
            case 95:
                System.out.println("春光灿烂");
                break;//跳出
            case 96:
                System.out.println("tom你怕了没");
                break;
            case 97:
                System.out.println("老铁,巴掌大的牛黄要不要");
                break;
            case 98:
                System.out.println("撸猫一族至高享受");
                break;
            default:
                System.out.println("大乱斗");
        }
    }
}

Test1:
0~10随机数的生成方法:int random=(int)(Math.random()*10);

import java.util.Scanner;

/**
 * @Author: ChaoKeAiMuZhi
 * @Date: 2020/7/8 15:17
 * @Description:
 **/
public class Test01 {
    public static void main(String[] args) {
        Scanner id = new Scanner(System.in);
        System.out.println("请输入3位以上的会员卡号:");
        int num = id.nextInt();
        int baiwei=num/100%10;
        int random=(int)(Math.random()*10);
        if(baiwei==random){
            System.out.println("恭喜您中奖了,获得精美MP3一个!!");
        }else{
            System.out.println("很遗憾您没有中奖!!");
        }
    }
}

你可能感兴趣的:(笔记)