B站400万播放量的Java教程都讲了什么-学习笔记06-if条件判断和用户输入

文章目录

  • 条件判断
  • 天气示例
  • 错误示例
  • 键盘输入
  • 参考

条件判断

if条件判断有以下形式:

// 1.if
if(布尔表达式){
    执行语句1;
    执行语句2;
    执行语句3;
    ...
    }

// 2.if else
if(布尔表达式){
    条件语句;
    }else{
    条件语句2;
    }

// 3.else if
if(布尔表达式1){
    执行语句块1;
    }else if(布尔表达式2){
    执行语句块2;
    }else if(布尔表达式3){
    执行语句块3;
    }...

// 4.else if else
if(布尔表达式1){
    执行语句块1;
    }else if(布尔表达式2){
    执行语句块2;
    }else if(布尔表达式3){
    执行语句块3;
    }...
    else{
    最后的执行语句块;
    }
  • 对于javaif语句只要有一个分支语句执行,整个语句就结束了
  • 凡是有else的形式都会保证百分百都有分支执行
  • 所有if语句都可以嵌套,大括号里的语句须使用缩进, 但也要合理使用,尽量避免嵌套多层
  • 只有一个执行语句,大括号可以不写(不推荐)

天气示例

    判断天气->
        下雨->
            男生:打纯色伞
            女生:打花伞
        天晴->
            温度->
                大于30度
                    男生:戴黑色墨镜
                    女生:戴粉色墨镜
                小于30度
                    什么也不用干
                   
另外,尽量保证代码稳健性,解决用户非法输入问题

示例代码:

public class IfWeather{
    public static void main(String[] args){
        //打印输入提示
        System.out.println("雨/晴: 1/2");
        System.out.println("男/女: 1/2");
        //创建一个键盘对象
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.print("weather:");
        int weather = s.nextInt();
        System.out.print("sex:");
        int sex = s.nextInt();
        if(weather == 1){
            System.out.println("今天天气是:" + weather);
            if(sex == 1){
                System.out.println("你是男生,应该带一把纯色伞");
            }else if(sex == 2){
                System.out.println("你是女生,应该带一把小花伞");
            }else{
                System.out.println("你输了个啥性别?请重新运行程序");
            }
        }else if(weather == 2){
            System.out.print("temp:");
            int temp = s.nextInt();
            if(temp >= 30){
                if(sex == 1){
                    System.out.println("你是爷们,应该戴黑墨镜");
                }else if(sex == 2){
                    System.out.println("你是女生,应该戴粉墨镜");
                }else{
                    System.out.println("你输的啥性别?请重新运行程序");
                }
            }else if(temp < 30){
                System.out.println("今天天气很舒服,啥眼镜也不用带");
            }else{
                System.out.println("你输的啥温度?请重新运行程序");
            }
        }else{
            System.out.println("你输的啥天气?请重新运行程序");
        }
    }
}

B站400万播放量的Java教程都讲了什么-学习笔记06-if条件判断和用户输入_第1张图片

错误示例

若只有一行执行语句,大括号是可以省略的,但是注意后面的语句已经不是if语句块中的了

public class IfError{
    public static void main(String[] args){
        if(true) System.out.println("单行if执行语句不用加括号也可以(不推荐)");
        if(false)
            System.out.println("可以执行"); //实际上等价于上句末加'{',这句末尾加'}',从而结束了if的执行语句
            System.out.println("可以执行,不过已经不属于if执行语句了");
        else{ //该行报错
            System.out.println("只有一个else没有if会报错");
        }
    }
}

B站400万播放量的Java教程都讲了什么-学习笔记06-if条件判断和用户输入_第2张图片

键盘输入

  • 通过调用java基本库java.util.Scanner(System.in)创建键盘扫描对,一次创建多次使用
  • 通过键盘对象的next方法接受字符串,非字符串类型会默认转换成String类型
  • 通过键盘对象的nextInt方法接受int,非``int```类型字面值都会报错
  • 类似的还有nextFloat/nextDouble等等
public class KeyInput{
    public static void main(String[] args){
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.print("请输入字符:" ); //不换行
        String keyInput = s.next();
        //int keyInput = s.next(); //next返回String,int接受失败
        System.out.println("您输入的内容:" + keyInput);
        System.out.print("请输入整数:" ); //不换行
        int num = s.nextInt();
        System.out.println("您输入的整数乘以10:" + (num * 10));
        System.out.print("请输入字符:" ); //不换行
        float flt = s.nextFloat();
        System.out.println("您输入的小数:" + flt);
    }
}

B站400万播放量的Java教程都讲了什么-学习笔记06-if条件判断和用户输入_第3张图片

参考

B站动力节点老杜老师的Java教程(原视频戳这里)

你可能感兴趣的:(Java教程)