scanner对象

  • 基本语法:

    • Scanner s = new Scanner(System.in)
  • 使用next()和nextLine()读取前,使用hasNext()和hasNextLine()来判断是否还有输入数据

  • next():

      1. 一定要读取到有效字符后才可以结束输入
      2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
      3. 只有输入有效字符后才将其后面输入的空白作为分隔符或结束符
      4. next()不能得到带有空格的字符串
    • package com.wyd.scanner;
      
      import java.util.Scanner;
      
      public class Demo01 {
      public static void main(String[] args) { //创建一个扫描器对象,用于接受键盘数据
      Scanner scanner = new Scanner(System.in); System.out.println("使用next方式接收:"); //判断用户有没有输入字符串
      if (scanner.hasNext()){
      //使用next方式接收
      String str = scanner.next();
      System.out.println("输入的内容为:"+str);
      }
      //凡是属于IO流的类,如果不关闭就会一直占用资源,用完就关掉
      scanner.close(); }
      }
  • nextLine():

      1. 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的 所有字符
      2. 可以获得空白
package com.wyd.scanner;

import java.util.Scanner;

public class Demo02 {
public static void main(String[] args) {
//从键盘接收数据
Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine方式接收数据:"); //判断是否还有输入
if (scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println("输出的内容为:"+str);
} scanner.close();
}
}
package com.wyd.scanner;

import java.util.Scanner;

public class Demo03 {
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入数据:"); String str = scanner.nextLine(); //不判断是否还有输入 System.out.println("输入的内容为:"+str);
}
}
package com.wyd.scanner;

import java.util.Scanner;

public class Demo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); //从键盘接收数据
int a = 0;
float b = 0.0F; System.out.println("请输入整数数据:"); //如果。。。那么。。。
if (scanner.hasNextInt()){
a = scanner.nextInt();
System.out.println("整数数据:"+a); }else{
System.out.println("输入的不是整数数据!");
} System.out.println("请输入小数:"); if (scanner.hasNextFloat()){
b=scanner.nextFloat();
System.out.println("输入的小数数据是:"+b);
}else {
System.out.println("输入的不是小数!");
} scanner.close();
}
}
package com.wyd.scanner;

import java.util.Scanner;

public class Demo05 {
public static void main(String[] args) {
//输入多个数字,并求和与平均值,每输入一个数字以回车确认,通过输入非数字字符来结束输入并执行结果
Scanner scanner = new Scanner(System.in);
//和
double sum=0;
//计算输入了多少个数字
int m=0;
//通过循环判断是否还有输入,并在里面对每一次进行求和和统计
while (scanner.hasNextDouble()){
double x=scanner.nextDouble();
m++;
sum=sum+x;
System.out.println("你输入了第"+m+"个数据,这"+m+"个数据的和为:"+sum);
}
System.out.println(m+"个数的和为:"+sum);
System.out.println("输入数字的个数为:"+m); scanner.close();
}
}

顺序结构

package com.wyd.struct;

public class ShunXuDemo {
public static void main(String[] args) {
System.out.println("hello01");
System.out.println("hello02");
System.out.println("hello03");
System.out.println("hello04");
}
}

选择结构

if单选择结构:

if (布尔表达式) {
//如果布尔表达式为true将执行的语句
}

package com.wyd.struct;

import java.util.Scanner;

public class IfDemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); System.out.println("请输入内容:"); String s = scanner.nextLine(); //equals判断字符串是否相等
if (s.equals("Hello")){
System.out.println(s);
} System.out.println("End"); scanner.close();
}
}

if双选择结构

if (布尔表达式) {
//如果布尔表达式的值为true
} else {
//如果布尔表达式的值为false
}

package com.wyd.struct;

import java.util.Scanner;

public class IfDemo02 {
public static void main(String[] args) {
//考试分数>=60分就及格,<60分就不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score=scanner.nextInt();
if (score>=60){
System.out.println("及格");
} else {
System.out.println("不及格");
} scanner.close();
}
}

if多选择结构

if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
//如果布尔表达式 3的值为true执行代码
}else {
//如果以上布尔表达式都不为true执行代码
}

package com.wyd.struct;

import java.util.Scanner;

public class IfDemo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); /*
if语句至多有一个else语句,else语句在所有的else if语句之后。
if语句可以有若干个else if语句,它们必须在else语句之前。
一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行。
*/ System.out.println("请输入成绩:");
int score=scanner.nextInt(); if (score==100){
System.out.println("恭喜满分");
}else if (score<100 && score>=90){
System.out.println("A级");
}else if (score<90 && score>=80){
System.out.println("B级");
}else if (score<80 && score>=70){
System.out.println("C级");
}else if (score<70 && score>=60){
System.out.println("D级");
}else if (score<60 && score>=0){
System.out.println("不及格");
}else {
System.out.println("成绩不合法");
}
scanner.close();
}
}

嵌套的if结构

if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}
}

switch多选择结构

package com.wyd.struct;

public class SwitchDemo01 {
public static void main(String[] args) {
//case穿透 //switch 匹配一个具体的值
char grade = 'C'; switch (grade){
case 'A':
System.out.println("优秀");
break; //可选,判断是否继续输出后续内容
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("及格");
break;
case 'D':
System.out.println("再接再厉");
break;
case 'E':
System.out.println("挂科");
break;
default:
System.out.println("未知等级");
}
}
}
  • switch语句中的变量类型可以是:byte, short, int, char 或者 String。

  • 同时case标签必须为字符串常量或字变量

  • switch(expression){
    case value :
    //语句
    break; //可选,尽量写上
    case value :
    //语句
    break; //可选
    //你可以有任意数量的case语句
    default : //可选
    //语句
    }
  • 使用IDEA进行反编译class文件,看源码

    • 在file→project struct中查看输出文件夹,打开程序的out文件夹,将class文件复制到程序的包文件夹中,在IDEA中就可查看class文件的源码:


package com.wyd.struct;

public class SwitchDemo02 {
public static void main(String[] args) { String name="狂神";
//JDK7的新特性,表达式结果可以是字符串
//字符的本质还是数字 使用哈希码转换 //反编译 java-----class(字节码文件)-----反编译(IDEA) switch (name){
case "秦疆":
System.out.println("秦疆");
break;
case "狂神":
System.out.println("狂神");
break;
default:
System.out.println("弄啥嘞!");
}
}
}

scanner对象,顺序及选择结构的更多相关文章

  1. Java运算符及顺序、选择结构

    :运算符(掌握) ()算术运算符 A:+,-,*,/,%,++,-- B:+的用法 a:加法 b:正号 c:字符串连接符 C:/和%的区别 数据做除法操作的时候,/取得是商,%取得是余数 D:++和- ...

  2. 第三章 C#程序结构(3.1 顺序与选择结构)

    [案例]输入某一学生的成绩,输出其对应的档次.具体规定:90分以上为优秀,80分以上至89分为良好,70分至79分为一般,60分至69分为合格,59以下为不及格.如果输入的分数小于0或大于100,则输 ...

  3. Java流程控制以及顺序、选择、循环结构

    目录 用户交互Scanner Scanner对象 hasNext()与next() hasNextLine()与nextLine() Scanner进阶用法 求和与平均数 顺序结构 选择结构 if单选 ...

  4. java顺序结构、循环结构、选择结构

    java顺序结构.选择结构.循环结构 顺序结构: 语句与语句之间,框与框之间是从上到下的顺序进行的,它是由若干个依次执行的处理步骤执组成的,它是任何一个算法都不离开的一种基本算法结构. 选择结构: 1 ...

  5. Java流程控制03——选择结构

    选择结构 if单语句结构 我们很多时候要去判断一个东西是否可行,然后我们才去执行,这样一个过程我们用if语句来表示 语法  if(布尔表达式){ //如果布尔表达式结果为true将执行的语句 } if ...

  6. Java基础系列(18)- if选择结构

    if单选择结构 我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示 语法 if (布尔表达式){ //如果布尔表达式为True将执行的语句 } packag ...

  7. 03-03 java 顺序语句结构,选择结构if语句

    顺序结构: /* 流程控制语句:可以控制程序的执行流程. 分类: 顺序结构 选择结构 循环结构 顺序结构: 从上往下,依次执行. */ class ShunXuJieGouDemo { public ...

  8. 运算符的基本概念以及常用Scanner、随机数Random、选择结构的初步了解

    运算符 分类 算术运算符 位运算符 关系运算符|比较运算符 逻辑运算符 条件运算符 赋值运算符 其中优先级顺序从上到下,可以记忆口诀:单目乘除位关系,逻辑三目后赋值 操作数: 运算符左右两边的数 表达 ...

  9. 046_使用Scanner获得键盘输入 047_控制语句介绍 048_控制语句_if单选择结构 049_ifelse双选择结构 050_ifelseifelse多选择结构

    046_使用Scanner获得键盘输入 package test_package;import java.util.Scanner;/** * 测试获得键盘输入 * @author * */publi ...

随机推荐

  1. Fastjson中getJSONObject()与getJSONArray()的使用

    测试JSON串: { "package": { "List1": { "errorCode": "0", "e ...

  2. python3去除行号

    问题:在复制一些代码时会同时复制每行的行号,删除比较麻烦,所以利用python3本身的代码进行一键删除. # 导入re 模块来使用正则表达式 import re """去 ...

  3. netty系列之:使用netty实现支持http2的服务器

    目录 简介 基本流程 CleartextHttp2ServerUpgradeHandler Http2ConnectionHandler 总结 简介 上一篇文章中,我们提到了如何在netty中配置TL ...

  4. 解决Mybatis 报错Invalid bound statement (not found)

    解决Mybatis 报错Invalid bound statement (not found) 出现此错误的原因 1.xml文件不存在 2.xml文件和mapper没有映射上 namespace指定映 ...

  5. go-zero 实战之 blog 系统

    go-zero 实战项目:blog 本文以 blog 的网站后台为例,着重介绍一下如何使用 go-zero 开发 blog 的用户模块. 本文涉及的所有资料都已上传 github 仓库 kougazh ...

  6. Noip模拟33垫底反思 2021.8.8

    T1 Hunter 考场上没写$%p$挂了25分.也是很牛皮,以后打完过了样例一定要检查 因为样例太小了......很容易忘记%%%% 正解随便手模就出来了. 1 #include<bits/s ...

  7. 常用Java API:Math类

    求最值 最小值 Math.min(int a, int b) Math.min(float a, float b) Math.min(double a, doubleb) Math.min(long ...

  8. 痞子衡嵌入式:借助Serial Plot软件测量i.MXRT系列FlexSPI驱动Flash页编程执行时间

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT系列FlexSPI驱动Flash页编程执行时间. 痞子衡之前写过一篇文章 <串行NOR Flash的页编程模式对于量产 ...

  9. Forest v1.5.12 发布,声明式 HTTP 框架,已超过 1.6k star

    Forest介绍 Forest 是一个开源的 Java HTTP 客户端框架,它能够将 HTTP 的所有请求信息(包括 URL.Header 以及 Body 等信息)绑定到您自定义的 Interfac ...

  10. ESXi 6.7 的https服务挂掉处理方法 503 Service Unavailable

    首先进入EXSi开启SSH(ESXi的主机控制台,非web控制台,是安装esxi的控制台) 然后 /etc/init.d/hostd status 显示已停止, 使用 /etc/init.d/host ...