Java流程控制02:Scanner的进阶使用
-
一道练习题
package 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(); } }
-
总结自己的疑问
System.out.println("你输入了第"+m+"个数据, 然后当前结果sum="+sum);
Java流程控制03:顺序结构
-
Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
-
顺序结构是最简单的算法结构。
-
语句和语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
Java流程控制04:选择结构⭐⭐⭐⭐⭐
-
if单选择结构
-
我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示。
-
语法
if(布尔表达式){ //如果布尔表达式为true将执行的语句 }
笔记
package 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结构。
- 语法
if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的值为false }
- 实现示例
package 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…等等,在生活中我们很多时候的选择也不只有两个,所以我们需要一个多选择结构来处理这类问题。
-
语法:
if(布尔表达式 1){ //如果布尔表达式 1的值为true执行代码 }else if(布尔表达式 2){ //如果布尔表达式 2的值为true执行代码 }else if(布尔表达式 3){ //如果布尔表达式 3的值为true执行代码 }else { //如果布尔表达式的值都不为true执行代码 }
-
示例:
package 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。
-
语法:
if(布尔表达式 1){ //如果布尔表达式 1的值为true执行代码 }else if(布尔表达式 2){ //如果布尔表达式 2的值为true执行代码 } }
思考题
我们需要寻找一个数,在1-100之间。
package 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标签必须为字符串常量或字面量。
switch(expression){ case value : //语句 break;//可选 case value : //语句 break;//可选 //你可以有任意数量的case语句 default://可选 //语句 }