一起养成写作习惯!这是我参与「掘金日新计划 · 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 语句包含一个布尔表达式和一条或多条语句。
- 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();
}
}