Java入门基础(二)——Scanner类 if语句 switch语句

374 阅读1分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第11天,点击查看活动详情

Scanner类

java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
下面是创建 Scanner 对象的基本语法:

Scanner s = new Scanner(System.in);

1.运行示例 接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,运行的代码如下

import java.util.Scanner;
public class Demo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入成绩:");
        int score = sc.nextInt();
        if(score==100){
            System.out.println("满分");
        }else if(score>=90&&score<100){
            System.out.println("优秀");
        }else if(score>=80&&score<90){
            System.out.println("合格");
        }else if(score>=70&&score<80){
            System.out.println("要努力");
        }else if(score>=60&&score<70){
            System.out.println("再接再厉");
        }else if(score>=0&&score<60){
            System.out.println("不及格");
        }else {
            System.out.println("输入成绩有误");
        }
        sc.close();
    }
}

2.运行结果

执行以上的代码输出的结果如下所示:

请输入成绩:
65
再接再厉

3.next() 与 nextLine() 区别


 - next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。

 - nextLine():
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。

switch

1.switch case 语句
判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
语法:

switch case 语句语法格式如下:
switch(expression){
    case value :
       //语句
       break; //可选
    case value :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
}

siwith case 运行示例


switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。
代码实例如下:

import java.util.Scanner;

public class Demo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        switch (str){
            case "A":
                System.out.println("A++");
                break;
            case "B":
                System.out.println("B++");
            case "C":
                System.out.println("C++");
            case "D":
                System.out.println("D++");
            default:
                System.out.println("other");

              sc.close();
        }
    }
}

2.运行结果

执行以上的代码输出的结果如下所示:

A
A++
再接再厉

如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case。

if…else

一个 if 语句包含一个布尔表达式和一条或多条语句。

  1. if条件语句的语法:
    if 语句的语法如下:
if(布尔表达式)  
{  
   //如果布尔表达式为true将执行的语句  
}  

如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码。

if条件语句的运行示例 Main.java 文件代码:

public class Main {
 
   public static void main(String args[]){
      int x = 10;
      if( x < 20 ){
         System.out.print("if 语句");
      }
   }
}

以上代码编译运行结果如下:
if 语句

注意:

if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。 使用 if,else if,else 语句的时候,需要注意下面几点:
1.if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
2.if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。

2.if…else 语法:

if…else 的语法格式:

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

if-else的运行代码如下:

public class Test {
 
   public static void main(String args[]){
      int x = 30;
      if( x < 20 ){
         System.out.print("x小于20");
      }else{
         System.out.print("X大于20");
      }
   }
}

以上代码编译运行结果如下:

X大于20

3.if- else if -else语法

语法格式如下:

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

if- else if -else的运行实例

import java.util.Scanner;
public class Demo03 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入成绩:");
        int score = sc.nextInt();
        if(score==100){
            System.out.println("满分");
        }else if(score>=90&&score<100){
            System.out.println("优秀");
        }else if(score>=80&&score<90){
            System.out.println("合格");
        }else if(score>=70&&score<80){
            System.out.println("要努力");
        }else if(score>=60&&score<70){
            System.out.println("再接再厉");
        }else if(score>=0&&score<60){
            System.out.println("不及格");
        }else {
            System.out.println("输入成绩有误");
        }
        sc.close();
    }
}