用户交互Scanner
scanner交互对象
通过Scanner类来获取用户的输入
next()
-
一定要读取到有效字符后才可以结束输入
-
对输入有效字符之前遇到的空白,next()方法会自动将其去掉
-
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
-
next()不能得到带有空格的字符串
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()
-
以Enter为结束符,也就是说,nextLine()方法返回的是输入回车之前的所有字符
-
可以获得空白
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(); } }
-
顺序结构
-
Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行
-
语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构
package com.Beverly.strct; public class ShunXuDemo { public static void main(String[] args) { System.out.println("hello1"); System.out.println("hello2"); System.out.println("hello3"); System.out.println("hello4"); System.out.println("hello5"); } }
选择结构
-
if单选择结构
package com.Beverly.strct; 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(); } }
-
if双选择结构
package com.Beverly.strct; 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(score>60){ System.out.println("及格"); }else{ System.out.println("不及格"); } scanner.close(); } }
-
if多选择结构
package com.Beverly.strct; import java.util.Scanner; public class IfDemo03 { public static void main(String[] args) { //考试分数大于60就是及格,小于60分就是不及格 Scanner scanner=new Scanner(System.in); /* if语句至多有1个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<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{ System.out.println("成绩不合法"); } scanner.close(); } }
-
嵌套的if结构
if······else语句,可以在另一个if或者else if语句中使用if或者else if,可以像if语句一样嵌套else if······else
-
switch多选择结构
package com.Beverly.strct; public class SwitchDemo01 { public static void main(String[] args) { //case穿透 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;//可选 case'E': System.out.println("挂科"); break;//可选 } } }
package com.Beverly.strct; public class SwithDemo02 { public static void main(String[] args) { String name="李四"; //JDK的新特征,表达式结果可以使字符串 //字符的本质还是数字 //反编译 java---class(字节码文件)---反编译(IDEA) switch (name){ case"张三": System.out.println("张三"); break; case"李四": System.out.println("李四"); break; default: System.out.println("做什么!"); } } }
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) // package com.Beverly.strct; public class SwithDemo02 { public SwithDemo02() { } public static void main(String[] args) { String name = "李四"; byte var3 = -1; switch(name.hashCode()) { case 774889: if (name.equals("张三")) { var3 = 0; } break; case 842061: if (name.equals("李四")) { var3 = 1; } } switch(var3) { case 0: System.out.println("张三"); break; case 1: System.out.println("李四"); break; default: System.out.println("做什么!"); } } }