java.util.Scanner
Java5的新特性,可以通过Scanner
类获取用户的输入。
Scanner s = new Scanner(System.in);
Scanner
类的next()
与nextLine()
方法获取输入的字符串hasNext()
或hasNextLine()
判断是否还有输入的数据。scanner.close()
next()
next()
不能得到带有空格的字符串nextLine()
scanner
还有一些其他的方法可以判断输入的是否是特定格式的数据,如hasNextInt()
,hasNextFloat()
等,然后使用对应的nextInt()
, nextFloat()
获取。
package com.kuang.base; import java.util.Scanner; /** * 输入多个数字求和、求平均值,输入的数字用回车确认,输入非数字结束输入并输出结果。 * * @author maple_w * Created on 21/07/10 010 18:00 */ public class Demo04_scanner_test { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double sum = 0; int num = 0; // 通过循环判断是否还有输入,并在循环中对每次输入进行求和、统计 while (scanner.hasNextDouble()) { double x = scanner.nextDouble(); num++; sum = sum + x; System.out.println("输入了第" + num + "个数据,当前结果sum = " + sum); } System.out.println(num + "个数字的和为: " + sum); System.out.println(num + "个数字的平均值为: " + (sum / num)); scanner.close(); } }
if(){} else if(){} else{}
switch case default
语句判断一个变量与一系列值中某个值是否相等,每个值成为一个分支。switch
语句中的变量类型可以是:
case
比较的是字符串的hashCode()
。case
穿透问题(break
的使用)package com.kuang.base; /** * JDK7中新增switch判断string特性 * * @author maple_w * Created on 21/07/10 010 18:23 */ public class Demo06_switch { public static void main(String[] args) { String flag = "hello"; switch (flag){ case "hello": System.out.println("hello"); break; case "world": System.out.println("world"); break; default: System.out.println("error"); } } }
反编译class
文件:
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // package com.kuang.base; public class Demo06_switch { public Demo06_switch() { } public static void main(String[] args) { String flag = "hello"; byte var3 = -1; switch(flag.hashCode()) { case 99162322: if (flag.equals("hello")) { var3 = 0; } break; case 113318802: if (flag.equals("world")) { var3 = 1; } } switch(var3) { case 0: System.out.println("hello"); break; case 1: System.out.println("world"); break; default: System.out.println("error"); } } }
while(布尔表达式){ // 循环内容 }
true
,循环就会一直执行下去do { // 代码语句 } while(布尔表达式);
do while
循环至少会执行一次do while
先执行,后判断for (初始化; 布尔表达式; 更新){ // 代码语句 }
package com.kuang.base; /** * 使用for循环打印九九乘法表 * 1*1=1 * 2*1=2 2*2=4 * 3*1=3 3*2=6 3*3=9 * 4*1=4 4*2=8 4*3=12 4*4=16 * 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 * 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 * 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 * 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 * 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 * * @author maple_w * Created on 21/07/10 010 21:23 */ public class Demo08_for { public static void main(String[] args) { for (int i = 1; i < 10; i++) { for (int j = 1; j <= i; j++) { System.out.print(i + "*" + j + "=" + i * j + "\t"); } System.out.println(); } } }
for (声明语句 : 表达式){ // 代码语句 }
标签名:
package com.kuang.base; /** * 打印三角形 * * @author maple_w * Created on 21/07/10 010 21:51 */ public class Demo09_printTriangle { public static void main(String[] args) { for (int i = 1; i <= 5; i++) { // 先打印空格 for (int j = 5; j >= i; j--) { System.out.print(" "); } // 打印左侧 for (int j = 1; j <= i; j++) { System.out.print("*"); } // 打印右侧 for (int j = 1; j < i; j++) { System.out.print("*"); } System.out.println(); } } }