Scanner&流程控制语句

1. Scanner类

Scanner的意思是扫描

Scanner是JDK提供的一个类,位于java.util包下,所以我们如果需要使用则必须导包,导包的语句必须在声明包之后,在声明类之前

Scanner类是用来接受用户输入的各种信息

Scanner类提供了用于接受各种数据类型的方法

方法作用
next()接受用户输入的字符串
nextByte()接收用户输入的byte类型的数据
nextShort()接收用户输入的short类型的数据
nextInt()接收用户输入的int类型的数据
nextLong()接收long类型的数据
nextFloat()接收float类型的数据
nextDouble()接收double类型的数据
nextBoolean()接收布尔类型的数据

定义一个Scanner类的变量

package com.csdn.code.day6;

import java.util.Scanner;

public class TestScanner {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
    }
}

  • Scanner表示一个类
  • input则是这个Scanner类的变量名
  • 等号右边的意思则是new了一个对象里面传了一个参数

使用方法

package com.csdn.code.day6;

import java.util.Scanner;	//使用Scanner类必须导包,必须在声明包之后,在声明类之前

public class TestScanner {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        //接受输入的数据,需要定义一个变量存放
        //接收字符串
        String str = input.next();
        System.out.println("你输入的字符串是:" + str);
        //接收整数
        int a = input.nextInt();
        System.out.println("你输入的整数是:" + a);
        //接收浮点数
        double d = input.nextDouble();
        System.out.println("你输入的浮点数是:" + d);
        //接受布尔类型
        boolean b = input.nextBoolean();
        System.out.println("你输入的布尔型是:" + b);

    }
}

运行结果
在这里插入图片描述

注意事项:输入的数据必须要与类型相匹配,不然会出现异常,会中断我们的程序

2. if语句

2.1 if结构

语法

if(布尔表达式){
    //表达式结果为true,执行语句
}

代码举例

package com.csdn.code.day6;

import java.util.Scanner;

public class TestIf {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int score = input.nextInt();

        if(score >= 60){
            System.out.println("合格");
        }
        else{
            System.out.println("不合格");
        }
        System.out.println("运行结束");
    }
}

不满足情况的输出
在这里插入图片描述

满足情况的输出
在这里插入图片描述

2.2 if-else结构

语法

if(布尔表达式){
    //表达式结果为true,执行语句
}else{
    //表达式结果为false,执行语句
}

代码举例

package com.csdn.code.day6;

import java.util.Scanner;

public class TestIf {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int score = input.nextInt();

        if(score >= 60){
            System.out.println("合格");
        }
        else{
            System.out.println("不合格");
        }
        System.out.println("运行结束");
    }
}

若表达式为true的情况
在这里插入图片描述

若表达式为false的情况
在这里插入图片描述

2.3 if-else-if结构(多重if结构)

语法

if(布尔表达式1){
    //若表达式1为true,执行语句
}else if(布尔表达式2){
    //若表达式2为true,执行语句
}else{
    //以上都为false,执行这条语句
}
  • 这个结构的else语句可以根据需求选择使不使用

代码举例

package com.csdn.code.day6;

import java.util.Scanner;

public class TestIf {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int score = input.nextInt();

        if(score >= 90){
            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("不合格");
        }
        System.out.println("运行结束");
    }
}

若满足表达式1结果
在这里插入图片描述

若满足表达式3结果
在这里插入图片描述

以上均不满足
在这里插入图片描述

2.4 嵌套if语句

语法

if(布尔表达式1){
    //表达式1为true,执行语句
    if(布尔表达式2){
        //表达式2为true,执行语句
    }
}

代码举例

package com.csdn.code.day6;

import java.util.Scanner;

public class TestIf {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int score = input.nextInt();
        
        if (score >= 0 && score <= 100) {
            if (score >= 90) {
                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("不合格");
            }
        }else{
            System.out.println("输入错误,请重新输入");
        }
        System.out.println("运行结束");
    }
}

在if里面我们嵌套了上面所写的if语句

3. switch语句

3.1 switch语句语法

switch(变量/表达式)
	case1:
		// 执行语句1
		break;
	case2:
		// 执行语句2
		break;
	...
	case 值n:
		// 执行语句n
		break;
	default:
		// 如果以上所有case都不匹配,执行语句
}

代码举例

package com.csdn.code.day6;

import java.util.Scanner;

public class TestSwitch {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int score = input.nextInt();

        switch(score / 10){
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("不及格");
                break;
            case 6:
                System.out.println("及格");
                break;
            case 7:
                System.out.println("中等");
                break;
            case 8:
                System.out.println("良好");
                break;
            case 9:
            case 10:
                System.out.println("优秀");
                break;
            default:
                System.out.println("输入错误,请重新输入");
        }
        System.out.println("运行结束");
    }
}

3.2 switch语句与if-else-if语句的区别

区别1

  • if-else-if语句仅可以判断布尔类型的表达式

  • switch可以判断byte、short、int、char、String类型的变量或者表达式

    • String类型在JDK7+才开始支持

区别2

  • if-else-if语句适合处理范围,如在分数范围内给你多少等级
  • switch语句则适合处理固定的值,如第几名给什么奖励等
  • 但两者都均可处理范围和固定值的情况
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鹤言o 0 O

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

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

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

打赏作者

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

抵扣说明:

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

余额充值