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