1、用户交互Scanner
输入格式:
Scanner s = new Scanner(System.in);
在IDEA中可以输入new Scanner(System.in);之后用ALT+左键进行自动补全。
Scanner类的作用是获取用户输入,通过Scanner类的next()和nextLine()方法获取输入字符串,在读取前一般需要适用hasNext()和hasNextLine()判断是否还有输入的数据。
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();
}
}
注意:
- 如果接收的数据类型为数值时,next和nextLine以及对应的hasNext和hasNextLine需加上数据类型,如:nextInt(),nextDouble()等;
- 代码中的if循环可以去掉,直接将其中的循环语句拿出来也能达到相同的效果;
- 使用属于IO流的类之后要及时关闭,以免浪费资源。
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
//从键盘接收数据
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String str = scanner.nextLine();
System.out.println("输出的内容为:"+str);
//凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关闭
scanner.close();
}
}
2、顺序结构
顺序结构式Java的基本结构,除非特别指明,否则代码就是按照从上到下的顺序一句一句进行执行
是任何算法都离不开的一种基本算法结构
3、选择结构
选择结构共有五种类型:
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(s);
}
System.out.println("end");
scanner.close();
}
}
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
//考试分数大于60及格,小于60就是不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的分数:");
//int score = scanner.nextInt();
if (scanner.nextInt()>60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
scanner.close();
}
}
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
/*
if语句至多有一个else语句,else语句在所有else if语句之后
if语句可以有若干个else if语句,他们必须在else语句之前
一旦其中一个else if语句检测为true,其他后面的else if以及else语句将跳过执行
*/
System.out.println("请输入你的分数:");
int score = scanner.nextInt();
if (score == 100){
System.out.println("满分");
}else if (score>=80 && score<100){
System.out.println("优秀");
}else if (score>=60 && score<80){
System.out.println("及格");
}else if (score>=0 && score<60){
System.out.println("不及格");
}else{
System.out.println("成绩不合法");
}
scanner.close();
}
}
public class SwitchDemo01 {
public static void main(String[] args) {
//case 穿透(case循环中不加break语句他会将后面的结果全部输出) //swith 匹配一个具体的值
char grade = 'C';
switch (grade){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("合格");
break;
case 'D':
System.out.println("不及格");
break;
default:
System.out.println("未知等级");
}
}
}
其中没一个case中的break;语句切记不要遗漏,否则在执行完满足条件的语句之后后面的case也会同样执行,如代码中如果没有break;语句,那么输出将会变为: