Scanner的进阶使用、顺序结构和选择结构
Java流程控制02:Scanner的进阶使用
一道练习题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35package com.xiwen.scanner;
import javafx.beans.binding.DoubleExpression;
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
//我们可以输入多个数字,并且要求其总和与平均数,每输入一个数字用回车确认。
//通过输入非数字来结束输入并输出执行结果;
Scanner scanner = new Scanner(System.in);
//和
double sum = 0;
//计算输入了多少个数字
int m = 0;
System.out.println("请希文输入一位数字");
/////通过循环判断时候还有输入,并在里面对每一次进行求和和统计
//while循环:会不停的走,除非你崩了或者结束了。
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();
}
}总结自己的疑问
1
System.out.println("你输入了第"+m+"个数据, 然后当前结果sum="+sum);
Java流程控制03:顺序结构
Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
顺序结构是最简单的算法结构。
语句和语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
Java流程控制04:选择结构⭐⭐⭐⭐⭐
if单选择结构
我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示。
语法
1
2
3
4if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
笔记
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23package com.xiwen.struct;
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");
//上面这些解释:如果s字符串等于Hello,
// 就输出s和End(也即Hello)。否则就输出End
scanner.close();
}
}if双选择结构
- 示例:某公司要收购一个软件。成功就给支付100万,失败自己找人开发。这样的需求用一个if就不行了,我们需要有两个判断。需要一个双选择结构,因此就有了if-else结构。
- 语法
1
2
3
4
5if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}- 实现示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39package simon;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import java.util.Scanner;
public class BuySoftWare {
public static void main(String[] args) {
//创建一个Scanner对象来获取用户输入
Scanner scanner = new Scanner(System.in);
//提示用户输入收购结果
//第一种写法:
System.out.println("请问收购成功了吗?请输入成功或失败:");
String input = scanner.next();
boolean b = input.equals("成功");
//第一种写法:是我自己改进的。
//第二种写法:
System.out.println("请问收购成功了吗?请输入成功或失败:");
boolean b = scanner.nextBoolean();
//第二种写法:是老师教的。感觉有点生硬。
//重点!根据收购结果进行判断
if(b){
System.out.println("收购成功了,让我们签合同支付100万吧!");
}else{
System.out.println("收购失败,自行开发!");
}
scanner.close();
}
}if多选择结构
我们发现刚才的代码不符合实际情况,真实情况还可能存在ABCD,存在区间多级判断。比如90-100就是A, 80-90就是B..等等,在生活中我们很多时候的选择也不只有两个,所以我们需要一个多选择结构来处理这类问题。
语法:
1
2
3
4
5
6
7
8
9if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
//如果布尔表达式 3的值为true执行代码
}else {
//如果布尔表达式的值都不为true执行代码
}示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40package com.xiwen.struct;
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
/*总结:
1.一个if语句可以有零个或多个elif语句。
2.else语句最多只能有一个,并且必须是最后一个条件分支。
3.一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行。
*/
//考试分数大于60就是及格,小于60份就不及格。
Scanner scanner = new Scanner(System.in);
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();
}
}
总结:
1.一个if语句可以有零个或多个else if语句。
2. else语句最多只能有一个,并且必须是最后一个条件分支。
3. 一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行。
嵌套的if结构
使用嵌套的 if…else语句是合法的。也就是说你可以在另一个if或者else if语句中使用if或者else if语句。你可以像if 语句一样嵌套else if…else。
语法:
1
2
3
4
5
6
7if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}
}
思考题
我们需要寻找一个数,在1-100之间。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30package Eg;
import java.util.Scanner;
public class Eg04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int low = 1;
int high = 100;
while (low <= high) {
int guess = (low + high) / 2;
System.out.println("你想到的数字是 " + guess + " 吗? (请输入'高', '低'或'对')");
String response = scanner.nextLine();
if (response.equals("对")) {
System.out.println("找到了! 你想到的数字是: " + guess);
break;
} else if (response.equals("低")) {
low = guess + 1;
} else if (response.equals("高")) {
high = guess - 1;
}
}
scanner.close();
}
}二分法的思想。
Java流程控制04:switch选择结构
switch多选择结构
- 多选择结构还有一个实现方式就是switch case语句。
- switch case 语句判断一个变量与一系列值中某个值是否相等,每个值成为一个分支。
- switch 语句中的变量类型可以是:
- byte、short、int、或者char
- 从Java SE 7开始
- switch 支持字符串String类型了
- 同时case标签必须为字符串常量或字面量。
1
2
3
4
5
6
7
8
9
10
11
12switch(expression){
case value :
//语句
break;//可选
case value :
//语句
break;//可选
//你可以有任意数量的case语句
default://可选
//语句
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Xiwen!