Scanner流程控制语句

news2024/9/25 22:54:59

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.coloradmin.cn/o/2165034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu中交叉编译armdillo库

网上关于交叉编译armdillo库比较少&#xff0c;借鉴了一些但是在前几天编译时总是磕磕绊绊&#xff0c;于是写一个详细的编译过程。 交叉编译armdillo库包含两个步骤&#xff1a;交叉编译依赖库和交叉编译armdillo库。armdillo官网介绍依赖库如下图所示&#xff1a; 需要注意如…

01【MATLAB】最小二乘系统辨识

目录 1.系统辨识的定义及其分类 1.1 系统辨识的定义 1.2 系统辨识的分类 2.参数模型 3.系统辨识的步骤 一、最小二乘法&#xff08;Least Squares Method&#xff09;一般步骤 二、LSM原理及应用 三、LSM在控制系统建模中的应用 1.系统辨识的定义及其分类 1.1 系统辨识的…

Leetcode面试经典150题-201.数字范围按位与

给你两个整数 left 和 right &#xff0c;表示区间 [left, right] &#xff0c;返回此区间内所有数字 按位与 的结果&#xff08;包含 left 、right 端点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;left 5, right 7 输出&#xff1a;4示例 2&#xff1a; 输入&…

Kolmogorov-Arnold——代替 MLP以提高模型的代表性和性能

前言 论文地址&#xff1a;https://arxiv.org/abs/2409.10594 源码地址&#xff1a;https://github.com/Adamdad/kat.git 传统的变压器模型使用多层感知器&#xff08;MLP&#xff09;来混合通道间的信息&#xff0c;而本文则使用了科尔莫哥罗德网络&#xff08;KAN&#xff0…

微信第三方开发平台接入公众号整体技术方案

1.1 公众号简介 官网地址&#xff1a;微信公众平台 微信公众号 就像是你在微信里的一个“官方小号”&#xff0c;专门用来发布内容、和粉丝互动。用户可以关注你的公众号&#xff0c;收到你发布的消息&#xff0c;就像朋友圈那样。公众号还能提供很多实用功能&#xff0c;比如…

在 React 中模拟输入

需求 与 Bug 项目的 C# 桌面端使用 CefSharp 内嵌了一个三方网站&#xff0c;在外部实现了一个登录控件&#xff0c;外部登录后希望内嵌的三方网站自动登录&#xff0c;实现代码如下&#xff1a; browser.ExecuteScriptAsync($"document.getElementsByName(username)[0]…

s3c2440——ADC模数转换器,Linux驱动编程——u-boot

一、ADC 模拟&#xff1a;连续&#xff1b;数字&#xff1a;离散。 模拟信号一般指连续变化的电压值。转换的步骤&#xff1a;采样、量化。 ADC中soc电压转为数字信号的方法&#xff1a;逐次逼近法。 分辨率&#xff1a;nbit&#xff1b;表示一个电压比较器比较10次&#xf…

CoreDNS实现跨集群service解析实践

CoreDNS实现跨集群service解析实践 背景介绍使用条件实现方案 CoreDNS是一款使用Go语言实现的专为云原生应用而生的DNS服务器。本文介绍CoreDNS在特定实际场景下的一种进阶使用实践&#xff0c;也许能为其他也在使用CoreDNS做服务发现的同学提供一些启发和思考。 背景介绍 在…

三星推出990 EVO Plus固态硬盘,支持PCIe 4.0性能出色

容量高达4TB&#xff0c;提供增强的性能和能效。性能卓越&#xff0c;随机读写速度分别为为 1,050K IOPS 和 1,400K IOPS。 韩国——2024年9月25日—三星电子于今天宣布推出990 EVO Plus固态硬盘&#xff0c;为其固态硬盘产品线再添新成员。990 EVO Plus 支持 PCIe 4.0和最新的…

Icarus翼星求生教你使用服务器开服

1、购买后登录服务器&#xff08;百度莱卡云游戏面板&#xff09; 登录面板的信息在绿色的登陆面板按键下方&#xff0c;不是你的莱卡云账号 进入控制面板后会出现正在安装的界面&#xff0c;大约10分钟左右就能安装完成 2、创建端口 点击目录上的网络&#xff0c;再次页面下点…

kali-linux-2023.4 安装与配置

kali官网 作者&#xff1a;程序那点事儿 日期&#xff1a;2024/01/15 21:34 进入kali官网&#xff0c;点到下载页面 选择安装方式&#xff08;本次私用虚拟机安装&#xff09;。裸机安装是指&#xff0c;先要安装虚拟机&#xff08;例如&#xff1a;CentOS7&#xff09…

【算法】贪心+堆排序实现大根堆及标准库容器类的融合使用

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

centos7安装Redis单机版

一、检查是否有GCC环境 gcc --version # 提示-bash: gcc: 未找到命令 说明没有gcc环境# 安装gcc环境 yum install gcc# 如果yum源报错 # 1.检查网络是否正常 ping www.baidu.com # 2.备份当前的yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo…

IntraWeb制作汉堡菜单

IntraWeb开发web网站时如何制作手机页面&#xff1f; delphi源代码&#xff1a;示例两列布局带顶部汉堡菜单&#xff08;兼容电脑与手机&#xff09; 功能&#xff1a;交互式网页&#xff0c;两列布局&#xff0c;顶部汉堡菜单&#xff0c;点击汉堡图标关闭左侧栏&#xff0c;…

【NLP】基于“检测器-纠错器”中文文本纠错框架

前言 许多方法将中文拼写纠正&#xff08;检测和纠正给定中文句子中的错误字符&#xff09;视为序列标注任务&#xff0c;并在句子对上进行微调。一些方法使用错误检测器作为初步任务&#xff0c;然后将检测结果用于辅助后续的错误纠正过程。然而&#xff0c;现有方法在使用检…

RIFormer:保持你的视觉主干有效但移除令牌混合器

摘要 https://arxiv.org/pdf/2304.05659 本文研究了如何在去除其基本构建块中的标记混合器&#xff08;token mixers&#xff09;的同时保持视觉主干的有效性。标记混合器作为视觉变换器&#xff08;Vision Transformers, ViTs&#xff09;的自注意力机制&#xff0c;旨在实现…

java项目之新闻稿件管理系统(源码+文档)

项目简介 新闻稿件管理系统实现了以下功能&#xff1a; 新闻稿件管理系统的主要使用者管理员功能有个人中心&#xff0c;用户管理&#xff0c;记者管理&#xff0c;审批员管理&#xff0c;新闻分类管理&#xff0c;新闻信息管理&#xff0c;系统管理等。记者发布新闻信息&…

uniapp 整合 OpenLayer3

安装openLayer插件 命令行&#xff1a;npm install ol 安装sass插件 命令行&#xff1a;npm install -D sass 使用方法&#xff1a; *** *** <style scoped lang"scss"> </style> 安装ElementPlus 命令行&#xff1a;npm install element-plus -…

汽车零部件开发流程关键阶段

目录 1、定点阶段 1.1、定点前的准备工作 1.2、定点决策过程 1.3、定点后的工作交接 2、A样阶段&#xff1a;设计验证与基本功能实现 2.1、样件制作&#xff1a;从设计图纸到实物转化 2.2、功能测试&#xff1a;初步验证与性能评估 2.3、评估与优化&#xff1a;A样阶段…

Java数据库连接jdbc

Java数据库连接jdbc 导入java包 1、根目录&#xff0c;新建一个lib目录&#xff08;Dire&#xff09; 2、将jar包放入lib目录下 3、File -> Project Structure&#xff08;项目结构&#xff09; 4、Libraries-> ->java->找到项目的lib目录 5、Apply->OK使用JD…