流程控制学习
用户交互Scanner
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、可以获得空白。
- 使用next方式接收
//创建一个扫描器对象,用于接收键盘数据
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
*/
- 使用nextLine方式接收
// 从键盘接收数据
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
*/
- 去掉 if 语句接收
// 从键盘接收数据
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 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选择结构
if单选择结构
- 语法:
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双选择结构
-
语法
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多选择结构
-
语法
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结构
-
语法
if(布尔表达式 1){ //如果布尔表达式 1的值为true执行代码 if(布尔表达式 2){ //如果布尔表达式 2的值为true执行代码 } }
switch多选择结构
-
语法:
switch(expression){ case value: //语句 break; //可选 case value: //语句 break; //可选 //你可以有任意数量的case语句 default: //可选 //语句 } -
举例一:
//case 穿透 //switch 匹配一个具体的值 char grade = 'C'; switch(grade){ case 'A': System.out.println("优秀"); break; //可选 case 'B': System.out.println("良好"); break; case 'C': //(C下方没有添加break,所以会继续执行D) System.out.println("及格"); case 'D': System.out.println("再接再厉"); break; case 'E': System.out.println("挂科"); default: System.out.println("未知等级"); /* 输出结果:及格 再接再厉 */ -
举例二:
String name = "您好"; //JDK7的新特性,表达式结果可以是字符串!!! //字符的本质还是数字 //反编译 java---class(字节码文件)---反编译(IDEA) switch (name){ case "您好": System.out.println("您好"); break; case "你好": System.out.println("你好"); break; default: System.out.println("无匹配选项!"); /* 输出结果:您好 */
顺序结构
while循环
-
语法:
while( 布尔表达式 ){ //循环内容 }- 只要布尔表达式为true,循环就会一直执行下去。
- 我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。
- 少部分情况需要循环一直执行,比如服务器的请求相应监听等。
-
举例:

简记流程控制的学习
持续更新中...
浙公网安备 33010602011771号