在写程序的过程中,想让程序更加灵活,使用Scanner类
jdk提供的这个类,作用 :“一个简单的文本扫描器”
(二)操作步骤 1、导包 import(关键字) java.util.Scanner ; 格式必须class类上面
需要在我当前的代码中使用jdk提供的这个类Scanner
2、创建一个文本扫描器对象 (键盘录入对象) 固定格式:Scanner 对象名(自己起名字) = new Scanner(System.in) ;
3、输入提示 System.out.println(“请您输入一个数据:”) ;
表示录入的是int类型数据
int 接收的变量名 = 对象名.nextInt() ; //nextInt() ;键盘录入Scanenr的方法
4、接收变量名并输出 (三)练习键盘录入一个整数,并打印输出
//导包1)
import java.util.Scanner ;
class ScannerDemo{
public static void main(String[] args){
//2)创建一个文本扫描器对象 (键盘录入对象)
//固定格式
//Scanner 对象名(自己起名字) = new Scanner(System.in) ;
Scanner sc = new Scanner(System.in) ;
//3)友情提示并录入int类型数据
System.out.println("请您输入一个数据(int):") ;
//int 接收的变量名 = 对象名.nextInt() ;
int a = sc.nextInt() ;
//4)输出下a,看效果
System.out.println("a的值是:"+a) ;
}
}
键盘录入三个数据,求最大值
//导包
import java.util.Scanner ;
class ScannerTest1{
public static void main(String[] args){
//创建键盘录入对象
//Scanner 对象名(名称而已) = new Scanner(System.in) ;
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请您输入第一个数据:") ;
int a = sc.nextInt() ;
System.out.println("请您输入第二个数据:") ;
int b = sc.nextInt() ;
System.out.println("请您输入第三个数据:") ;
int c = sc.nextInt() ;
//操作:
//方式1:中间第三方变量的方式(推荐)
//定义中间变量
int temp = (a>b)? a: b;
int max = (temp>c)? temp : c ;
System.out.println("三个数据中的最大值是:"+max) ;
System.out.println("-----------------------------") ;
//方式2:三元运算符的嵌套(不推荐)
int max2 = (a>b)?((a>c)?a:c):((b>c)?b:c) ;
System.out.println("三个数据中的最大值是:"+max2) ;
}
}
键盘录入两个数据,比较两个数据是否相等
//导包
import java.util.Scanner ;
class ScannerTest2{
public static void main(String[] args){
//创建键盘录入数据对象
Scanner scanner = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请您输入第一个数据:") ;
int m = scanner.nextInt() ;
System.out.println("请您输入第二个数据:") ;
int n = scanner.nextInt() ;
//比较两个数据是否相等
//boolean flag = (m==n)? true: false ;
//继续优化:==本身就比较
boolean flag = m==n ;
System.out.println(flag) ;
}
}
二、流程控制语句
(一)顺序结构语句
顺序结构语句 :代码由上而下依次加载(从刚开始写HelloWorld时候,就是顺序结构语句)
class ShunXuDemo{
//main方法---需要被jvm调用,程序的入口
public static void main(String[] args){
System.out.println("程序开始了……") ;
System.out.println("HelloWorld") ;
System.out.println("程序结束了……") ;
int i = 100 ;
System.out.println("over"+i) ;
}
}
(二)选择结构语句if
针对if语句来说,注意事项,
-
if后面有左大括号的地方不能有分号;有分号;的地方不能有{ 左大括号
-
在方法定义中书写—{} 局部代码块,限定局部变量的生命周期
执行流程:当前条件表达式成立——执行语句;否则不成立——不执行语句
//导包
import java.util.Scanner ;
class IfDemo{
public static void main(String[] args){
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请您输入一个数据x的值:") ;
int x = sc.nextInt() ;
if(x>=10 && x<=20){
System.out.println("x在10和20之间,x为:"+x) ;
}
if(x<10){
System.out.println("x小于10,x为:"+x) ;
}
System.out.println("over") ;
}
}
2、if 语句格式2
执行流程:判断表达式是否成立,如果成立——执行语句1;如果不成立——执行语句2
应用场景:针对两种情况进行判断
//导包
import java.util.Scanner ;
class IfDemo3{
public static void main(String[] args){
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//比较录入数据是否大于10
//提示并录入数据
System.out.println("请你输入一个数据:") ;
int num = sc.nextInt() ;
//if格式2
if(num>=10){
System.out.println("num大于或者等于10,值是"+num) ;
}else{
System.out.println("num小于10,值是"+num) ;
}
System.out.println("Over...") ;
System.out.println("----------------------------------------") ;
//比较两个数据中的最大值
//提示并录入数据
System.out.println("请你输入第一个数据:") ;
int a = sc.nextInt() ;
System.out.println("请你输入第二个数据:") ;
int b = sc.nextInt() ;
//定义结果变量
int max ;
if(a>b){
//System.out.println("最大值是"+a) ; //输出语句
max = a ; //将a赋值max
}else{
max = b ; //将b赋值max
}
System.out.println("两个数据中的最大值是:"+max) ;
}
}
3、if 语句格式3
执行流程:
判断表达式1是否成立,如果成立,则执行语句1;
如果不成立,继续判断表达式2是否成立,如果成立,执行语句2;
如果表达式2不成立,继续判断表达式3是否成立,如果成立,执行语句3
………
如果上面的条件表达式都不成立,则执行else中的语句n…
//导包
import java.util.Scanner ;
class IfDemo2{
public static void main(String[] args){
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请您输入学生的成绩:") ;
int socre = sc.nextInt() ;
if(socre>100 || socre<0){
//错误数据提示
System.out.println("对不起,非法数据!") ;
}else if(socre>=90 && socre<=100){
System.out.println("成绩优秀") ;
}else if(socre>=80 && socre<90){
System.out.println("成绩较好") ;
}else if(socre>=70 && socre<80){
System.out.println("成绩良好") ;
}else if(socre >=60 && socre<70){
System.out.println("成绩及格") ;
}else{
System.out.println("不及格") ;
}
}
}
(三)选择结构语句switch
1、格式
switch(表达式){
case 值1:
语句1;
break ;
case 值2:
语句2;
break ;
...
default:
语句n;
break ;
}
2、执行流程
判断表达式的值和case值1进行匹配,
如果匹配成功——执行语句1,break结束
如果case值1不匹配——继续和case后面的值2进行比较,如果匹配——语句2执行,break结束;
//导包
import java.util.Scanner ;
class SwitchDemo{
public static void main(String[] args){
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请您输入一个数据week:") ;
int week = sc.nextInt() ;
switch(week){
case 1:
System.out.println("星期一") ;
break ;
case 2:
System.out.println("星期二") ;
break ;
case 3:
System.out.println("星期三") ;
break ;
case 4:
System.out.println("星期四") ;
break ;
case 5:
System.out.println("星期五") ;
break ;
case 6:
System.out.println("星期六") ;
break ;
case 7:
System.out.println("星期日") ;
break ;
default :
System.out.println("对不起,非法数据!") ;
break ;
}
}
}
3、注意事项
-
case语句后面的值只能是常量(在Java语言中,Java是一个强类型语言:结构和格式是非常严谨的)
-
case语句中的break 必须带上,否则会造成一个现象:case 穿透
-
由于某个case已经匹配了,此时如果没有break,那么就继续往下面中case的语句进行穿透,依次执行,遇见有case中有break的,那么switch结束!
-
switch的结束条件是什么?
语句break结束或程序默认执行到末尾!



