当前位置: 首页 > article >正文

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语句则适合处理固定的值,如第几名给什么奖励等
  • 但两者都均可处理范围和固定值的情况

http://www.kler.cn/news/318941.html

相关文章:

  • 【kafka-03】springboot整合kafka以及核心参数详解
  • 代码随想录Day17 图论-2
  • PyCharm 的安装和配置
  • 《机器学习》周志华-CH8(集成学习)
  • yolov8环境安装
  • apache paimon简介(官翻)
  • 【第十三章:Sentosa_DSML社区版-机器学习之聚类】
  • 共享单车轨迹数据分析:以厦门市共享单车数据为例(六)
  • 《开题报告》基于SpringBoot的交通管理系统的设计与实现+学习文档+答辩讲解视频
  • 9.25今日错题解析(软考)
  • Error: one input ui-file must be specified(问题已解决)
  • Nature Communications|一种快速响应的智能可穿戴嗅觉接口(可穿戴电子/柔性电子/人机交互)
  • 直播平台美颜功能开发方案:基于视频美颜SDK的集成详解
  • vue3 + ts + vite 初始化 cesium
  • 携手SelectDB,观测云实现性能与成本的双重飞跃
  • STM32CubeIDE | 使用HAL库的ADC读取内部传感器温度
  • 基于springboot垃圾分类网站
  • 这样做PPT也太酷了吧,27.9kstar,适合开发者的ppt工具推荐
  • Spring Boot 点餐系统:提升您的餐饮体验
  • Cannot solve model: no CPLEX runtime found.【macOS系统下问题解决】
  • c# 将调试信息到VS输出窗口
  • 飞驰云联FTP替代方案:安全高效文件传输的新选择
  • 机器学习_神经网络_深度学习
  • 如何在银河麒麟操作系统中关闭IPv6
  • 解决mac下 Android Studio gradle 下载很慢,如何手动配置
  • linux安装solr
  • 配网缺陷检测无人机航拍图像数据集(不规范绑扎,螺栓销钉缺失)数据集总共3000张左右,标注为voc格式
  • 【RabbitMQ】消息分发、事务
  • 二级C语言2023-3易错题
  • 【伺服】Servo入坑学习记录①