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(变量/表达式)
case 值1:
// 执行语句1
break;
case 值2:
// 执行语句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语句则适合处理固定的值,如第几名给什么奖励等
- 但两者都均可处理范围和固定值的情况