Day05
用户交互
我们通过Scanner类来获取用户的输入
- 基本语法
next()
package com.gong.scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户是否输入字符串
if(scanner.hasNext()){
//使用next方式接收
String str =scanner.next();
System.out.println("输出的内容为:"+str);
}
//属于IO流的类如果不关闭就会一直占用资源,要养成好习惯已用完就关闭。
scanner.close();
}
}
输出
nextLine()
package com.gong.scanner;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
//创建扫描器
Scanner scanner =new Scanner(System.in);
System.out.println("使用nextLine方式接收:");
if(scanner.hasNextLine()){
String str = scanner.nextLine();//等待输入
System.out.println("输出的内容为:"+str);
}
scanner.close();
}
}
输出
两者的区别
案例
我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车进行确认,通过输入非数字来结束输入并输出结果。
package com.gong.scanner;
import java.util.Scanner;
//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车进行确认,通过输入非数字来结束输入并输出结果。
public class Demo05 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:");
//和
double sum=0;
//个数
int m=0;
while(scanner.hasNextDouble()){
double x= scanner.nextDouble();
m++;
sum=sum+x;
System.out.println("你输入了第"+m+"个数据,是:"+x);
}
System.out.println(m+"个数的和为:"+sum);
System.out.println(m+"个数的平均数为:"+sum/m);
scanner.close();
}
}
输出
请输入:
1
你输入了第1个数据,是:1.0
2
你输入了第2个数据,是:2.0
3
你输入了第3个数据,是:3.0
4
你输入了第4个数据,是:4.0
5
你输入了第5个数据,是:5.0
6
你输入了第6个数据,是:6.0
7
你输入了第7个数据,是:7.0
8
你输入了第8个数据,是:8.0
9
你输入了第9个数据,是:9.0
10
你输入了第10个数据,是:10.0
x
10个数的和为:55.0
10个数的平均数为:5.5
顺序结构
选择结构
If选择结构
If单选择结构
package com.gong.struct;
import java.util.Scanner;
public class IfDemo01 {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
System.out.println("请输入:");
String s = scanner.nextLine();
//equals判断字符串是否相等
if(s.equals("Hello")){
System.out.println("主人您好!");
}
System.out.println("end");
scanner.close();
}
}
输出
请输入:
Hello
主人您好!
end
If双选择结构
package com.gong.struct;
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
//考试分数大于60分就是及格,小于60分就是不及格
Scanner scanner= new Scanner(System.in);
System.out.println("请输入您的成绩:");
double a = scanner.nextDouble();
if(a>60){
System.out.println("您已及格,您的成绩是"+a);
}else
{
System.out.println("您不及格,您的成绩是"+a);
}
scanner.close();
}
}
输出
请输入您的成绩:
66
您已及格,您的成绩是66.0
If多选择结构
-
if语句至多有一个else语句,else语句在所有的else if语句之后。
-
if语句可以有若干个else if语句,它们必须在else语句之前。
-
一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行。
package com.gong.struct;
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
//成绩的等级划分
Scanner scanner =new Scanner(System.in);
System.out.println("请输入您的成绩:");
int score =scanner.nextInt();
if(score==100){
System.out.println("恭喜满分!");
}else if(score<100 && score>90){
System.out.println("A级");
}else if(score<90 && score>80){
System.out.println("B级");
}else if(score<80 && score>70){
System.out.println("C级");
}else if(score<70 && score>60){
System.out.println("D级");
}else if(score<60 && score>0){
System.out.println("不及格");
}else if(score==0){
System.out.println("您仍需努力!");
}else{
System.out.println("成绩不合法");
}
scanner.close();
}
}
输出
请输入您的成绩:
0
您仍需努力!
作业
用户在控制台输入0-6,判断是星期几。例如:输入0,输出星期一;输入1,输出星期二,其余依次类推。
package com.stx.p1.gonghaoyue;
import java.util.Scanner;
//用户在控制台输入0-6,判断是星期几。例如:输入0,输出星期一;输入1,输出星期二,其余依次类推。
public class Demo01 {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
System.out.println("请输入0-6判断今天是星期几:");
int a= scanner.nextInt();
if(a==0){
System.out.println("您输入的是"+a+"所以今天是星期一");
}else if(a==1){
System.out.println("您输入的是"+a+"所以今天是星期二");
}else if(a==2){
System.out.println("您输入的是"+a+"所以今天是星期三");
}else if(a==3){
System.out.println("您输入的是"+a+"所以今天是星期四");
}else if(a==4){
System.out.println("您输入的是"+a+"所以今天是星期五");
}else if(a==5){
System.out.println("您输入的是"+a+"所以今天是星期六");
}else if(a==6){
System.out.println("您输入的是"+a+"所以今天是星期日");
}else{
System.out.println("您输入的日期不合法");
}
scanner.close();
}
}
输出
请输入0-6判断今天是星期几:
5
您输入的是5所以今天是星期六