java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner类来获取用户的输入。
基本语法:
Scanner s = new Scanner(System.in);
通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext() (还是否有下一个)与 hasNextLine() (还是否有下一行)判断是否还有输入的数据
Scanner对象
next():
- 1、一定要读取到有效字符后才可以结束输入。
- 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉
- 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- 4、next() 不能得到带有空格的字符串。
nextLine():
- 1、以Enter为结束符,也就是说 nextLine() 方法返回的是输入回车之前的所有字符。
- 2、可以获得空白。
//创建一个扫描器对象,用于接收键盘数据 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方式接收: hello world 输入的内容为:hello */
// 从键盘接收数据 Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine方式接收:"); // 判断是否还有输入 if(scanner.hasNextLine()){ String str = scanner.nextLine(); System.out.println("输入的内容为:"+str); } scanner.close(); /* 输出结果: 使用nextLine方式接收: hello world 输入的内容为:hello world */
// 从键盘接收数据 Scanner scanner = new Scanner(System.in); System.out.println("请输入数据:"); String str = scanner.nextLine(); System.out.println("输出的内容为:"+str); scanner.close(); /* 输出结果: 请输入数据: hello world 输出的内容为:hello world */
//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果: Scanner scanner = new Scanner(System.in); //和 double sum = 0; //计算输入了多少个数字 int m = 0; //通过循环判断是否还有输入,并在里面对每一次进行求和统计 while(scanner.hasNextDouble()){ double x = scanner.nextDouble(); m = m + 1; //m++ sum = sum + x; System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum); } System.out.println(m + "个数的和为" + sum); System.out.println(m + "个数的平均值是" + (sum / m)); scanner.close(); /* 输出结果: 10 你输入了第1个数据,然后当前结果sum=10.0 20 你输入了第2个数据,然后当前结果sum=30.0 30 你输入了第3个数据,然后当前结果sum=60.0 40 你输入了第4个数据,然后当前结果sum=100.0 asd 4个数的和为100.0 4个数的平均值是25.0 */
JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
它是任何一个算法都离不开的一种基本算法结构。
if(布尔表达式){ //如果布尔表达式为true将执行的语句 }
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(); /* 输出结果: 请输入内容: Hello Hello End */
语法
if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的值为false }
举例
//考试分数大于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(); /* 输出结果: 请输入成绩: 60 及格 */
语法
if(布尔表达式 1){ //如果布尔表达式 1的值为true执行代码 }else if(布尔表达式 2){ //如果布尔表达式 2的值为true执行代码 }else if(布尔表达式 3){ //如果布尔表达式 3的值为true执行代码 }else{ //如果以上布尔表达式都不为true执行代码 }
举例
//考试分数大于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(); /* 输出结果: 请输入成绩: 102 成绩不合法 */
语法
if(布尔表达式 1){ //如果布尔表达式 1的值为true执行代码 if(布尔表达式 2){ //如果布尔表达式 2的值为true执行代码 } }