程序流程控制 • 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。 • 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即: 顺序结构 分支结构 循环结构
顺序结构 程序从上到下逐行地执行,中间没有任何判断和跳转。 分支结构 根据条件,选择性地执行某段代码。有if…else和switch-case两种分支语句。 循环结构 根据循环条件,重复性的执行某段代码。有while、do…while、for三种循环语句。 注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。
顺序结构 Java中定义成员变量时采用合法的前向引用。
/* 分支结构中的if-else(条件判断结构)
一、三种结构
第一种: if(条件表达式){ 执行表达式 }
第二种:二选一 if(条件表达式){ 执行表达式1 }else{ 执行表达式2 }
第三种:n选一 if(条件表达式){ 执行表达式1 }else if(条件表达式){ 执行表达式2 }else if(条件表达式){ 执行表达式3 } … else{ 执行表达式n }
*/ class IfTest { public static void main(String[] args) {
//举例1 int heartBeats = 79; if(heartBeats < 60 || heartBeats > 100){ System.out.println("需要做进一步检查"); } System.out.println("检查结束"); //举例2 int age = 23; if(age < 18){ System.out.println("你还可以看动画片"); }else{ System.out.println("你可以看成人电影了"); } //举例3 if(age < 0){ System.out.println("您输入的数据非法"); }else if(age < 18){ System.out.println("青少年时期"); }else if(age < 35){ System.out.println("青壮年时期"); }else if(age < 60){ System.out.println("中年时期"); }else if(age < 120){ System.out.println("老年时期"); }else{ System.out.println("你是要成仙啊~~"); } }}
分支结构:if-else使用说明
条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量 语句块只有一条执行语句时,一对{}可以省略,但建议保留 if-else语句结构,根据需要可以嵌套使用 当if-else结构是“多选一”时,最后的else是可选的,根据需要可以省略 当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓 当多个条件是“包含”关系时,“小上大下 / 子上父下” 例题
/* 岳鹏参加Java考试,他和父亲岳群达成承诺: 如果: 成绩为100分时,奖励一辆BMW; 成绩为(80,99]时,奖励一台iphone xs max; 当成绩为[60,80]时,奖励一个 iPad; 其它时,什么奖励也没有。 请从键盘输入岳鹏的期末成绩,并加以判断
说明:
else 结构是可选的。针对于条件表达式:如果多个条件表达式之间是“互斥”关系(或没有交集的关系),哪个判断和执行语句声明在上面还是下面,无所谓。 如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面。 如果多个条件表达式之间有包含的关系,通常情况下,需要将范围小的声明在范围大的上面。否则,范围小的就没机会执行了。 */
import java.util.Scanner; class IfTest { public static void main(String[] args) { Scanner scan = new Scanner(System.in);
System.out.println("请输入岳鹏期末成绩:(0-100)"); int score = scan.nextInt(); if(score == 100){ System.out.println("奖励一辆BMW");//be my wife! BMW <---> MSN }else if(score > 80 && score <= 99){ System.out.println("奖励一台iphone xs max"); }else if(score >= 60 && score <= 80){ System.out.println("奖励一个 iPad"); }else{ System.out.println("什么奖励也没有"); } }}
/* 编写程序:由键盘输入三个整数分别存入变量num1、num2、num3, 对它们进行排序(使用 if-else if-else),并且从小到大输出。
说明:
if-else结构是可以相互嵌套的。
如果if-else结构中的执行语句只有一行时,对应的一对{}可以省略的。但是,不建议大家省略。 */ import java.util.Scanner; class IfTest2 { public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); System.out.println("请输入第一个整数:"); int num1 = scanner.nextInt(); System.out.println("请输入第二个整数:"); int num2 = scanner.nextInt(); System.out.println("请输入第三个整数:"); int num3 = scanner.nextInt(); if(num1 >= num2){ if(num3 >= num1) System.out.println(num2 + "," + num1 + "," + num3); else if(num3 <= num2) System.out.println(num3 + "," + num2 + "," + num1); else System.out.println(num2 + "," + num3 + "," + num1); }else{ if(num3 >= num2) System.out.println(num1 + "," + num2 + "," + num3); else if(num3 <= num1) System.out.println(num3 + "," + num1 + "," + num2); else System.out.println(num1 + "," + num3 + "," + num2); }} }
class IfExer { public static void main(String[] args) { int x = 4; int y = 1; if (x > 2) if (y > 2) System.out.println(x + y); //System.out.println(“atguigu”); else //就近原则 System.out.println("x is " + x);
//课后练习3:测算狗的年龄 int dogAge = 6; if(dogAge >= 0 && dogAge <= 2){ System.out.println("相当于人的年龄:" + dogAge * 10.5); }else if( dogAge > 2){ System.out.println("相当于人的年龄:" + (2 * 10.5 + (dogAge - 2) * 4)); }else{ System.out.println("狗狗还没出生呢!"); } //课后练习4:如何获取一个随机数:10 - 99 int value = (int)(Math.random() * 90 + 10);// [0.0,1.0) --> [0.0,90.0) --->[10.0, 100.0) -->[10,99] System.out.println(value); //公式:[a,b] : (int)(Math.random() * (b - a + 1) )+ a }}
/* 大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件: 高:180cm以上;富:财富1千万以上;帅:是。 如果这三个条件同时满足,则:“我一定要嫁给他!!!” 如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。” 如果三个条件都不满足,则:“不嫁!”
*/
import java.util.Scanner;
class IfExer1 { public static void main(String[] args) {
Scanner scan = new Scanner(System.in); System.out.println("请输入你的身高:(cm)"); int height = scan.nextInt(); System.out.println("请输入你的财富:(千万)"); double wealth = scan.nextDouble(); /* 方式一: System.out.println("请输入你是否帅:(true/false)"); boolean isHandsome = scan.nextBoolean(); if(height >= 180 && wealth >= 1 && isHandsome){ System.out.println("我一定要嫁给他!!!"); }else if(height >= 180 || wealth >= 1 || isHandsome){ System.out.println("嫁吧,比上不足,比下有余。"); }else{ System.out.println("不嫁!"); } */ //方式二: System.out.println("请输入你是否帅:(是/否)"); String isHandsome = scan.next(); if(height >= 180 && wealth >= 1 && isHandsome.equals("是")){ System.out.println("我一定要嫁给他!!!"); }else if(height >= 180 || wealth >= 1 || isHandsome.equals("是")){ System.out.println("嫁吧,比上不足,比下有余。"); }else{ System.out.println("不嫁!"); } }}