文章目錄
什麼流程控制?
- 就是用來控制程序中各語句的執行順序。
流程控制分以下三類
-
順序(如左圖)
-
選擇結構(如右圖)
-
循環結構(後一課講)
如圖 :
流程圖:
逐步解決指定問題的步驟和方法的一種圖形化表示方法
選擇結構的分類
-
if語句
-
switch語句
if語句四種格式
-
基本if選擇結構:可以處理單一或組合條件的情況
-
if-else選擇結構:可以處理簡單的條件分支情況
-
多重if選擇結構:可以處理分段的條件分支情況
-
嵌套if選擇結構:可以處理複雜的條件分支情況
switch選擇結構
- 多重分支並且條件判斷是等值判斷的情況
基本if的流程圖
基本if的語法:
if(條件){
//(縮進)代碼塊
}
if小知識:
當有一條語句時,可以省略{},但不推薦。
if後面括號的條件結果只能爲true和false,如果條件爲true,則執行代碼塊,否則不執行。
if的應用演示代碼1如下:
package org.gyun.test;
/**
* @ClassName:Demo1.java
* @Description:if的應用
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-9-3 下午4:25:01
* @Version:1.0
*/
public class Demo1 {
/**
* 主方法 實現需求: *
* if 在一條語句的情況下,可以省略{},不推薦省略!強烈要求加{} *
*/
public static void main(String[] args) {
// 變量聲明賦值
int num = 10;
// 判斷
if (num > 10)//注意沒有加{}注意縮進
System.out.println(num);
// 更新num
num++; // 注意:這個一行不用考慮++在前還是後,即num的值就是num+1
System.out.println(++num); // 打印是num自加1之後的值,即打印爲:12
System.out.println(num++); // 打印是num先賦值時的值,注意:不是自加1後的值,即打印爲:12
System.out.println(num); // 打印是num自加1之後的值,即打印爲:13
}
}
if的應用演示代碼2如下:
package org.gyun.test;
/**
* @ClassName:Demo2.java
* @Description:if複雜應用
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-9-3 下午4:59:36
* @Version:1.0
*/
public class Demo2 {
/**
* 主方法: 分析需求:
*/
public static void main(String[] args) {
// 調用方法
// demo1();
// demo2();
// demo3();
// 需求: 如果百米賽跑在10秒內 可以根據條件進入男子和女子組
// 語法: if(條件){} 注意:條件的結果是布爾值,即true和false 是true,則執行代碼塊,否則不執行!
// 聲明變量
String sex = "男";
int s = 91;
// if判斷
if (s < 10) {// 結果爲true
// 注意java裏比較字符串用equals
if ("男".equals(sex)) {
System.out.println("進入男子組");
} else if ("女".equals(sex)) {
System.out.println("進入女子組");
} else {
System.out.println("sex未知");
}
} else {// false,就執行這一行打印
System.out.println("淘汰了");
}
}
// 多重if選擇結構 使用多重if選擇語句處理問題時需要注意順序,切記不能任意調換。
private static void demo3() {
// 聲明變量
int java = 91;
// 互斥
if (java >= 100) {
System.out.println("良好");
} else if (java >= 80) {
System.out.println("中等");
} else if (java >= 60) {
System.out.println("及格");
} else {
System.out.println("差");
}
}
// 使用if-else選擇結構
private static void demo2() {
// 聲明變量
int java = 91;
// 互斥
if (java > 90) {
System.out.println("給予獎勵!");
} else {
System.out.println("蹲馬步");
}
}
/**
* 基本的if選擇結構
*
* 使用複雜條件的if選擇結構 如: if (java > 90 && music > 80 || java == 100 && music > 70) {
*
* 結合運算符的優先級編寫條件**
*
* 最高的優先級:( )
*
* 最低的優先級:=
*
* 優先級:!> 算術運算符 > 關係運算符 > && > ||
*
* 複雜條件使用括號提高可讀性
*
* 需求條件:
* 達成其中一個條件,就給予獎勵
* 1.條件1 java>90 且music>80
* 2.條件2 java==100 且 music>70
*/
//
private static void demo1() {
// 聲明變量
int java = 91;
int music = 81;
// 結果爲true,就打印:給予獎勵!
if (java > 90 && music > 80 || java == 100 && music > 70) {
System.out.println("給予獎勵!");
}
}
}
switch的使用
switch (表達式) {
case 1:
//執行需求塊 如:System.out.println("參加北京大學組織的1個月夏令營");
//不要忘記break
break;
case 2:
//執行需求塊 如:System.out.println("獎勵外星人筆記本電腦一臺 ");
//不要忘記break
break;
case 3:
//執行需求塊 如:System.out.println("獎勵手機一部 ");
//不要忘記break
break;
default:
//執行需求塊 如:System.out.println("不給任何獎勵 ");
//不要忘記break
break;
}
switch小知識:
使用switch選擇結構要注意以下幾點:
1.多個case後的常量不能重複
2.switch後的小括號中的表達式只允許爲:
基本數據類型:char byte short int
引用數據類型:String enum(枚舉,後面會學)
3.switch語句的前後順序可以進行顛倒。
使用場景:
必須是等值判斷。
switch演示案例:
package org.gyun.test;
import java.util.Collections;
import java.util.Scanner;
/**
* MyEclipse 10.7.1工具會報錯
* 以下使用的工具爲:Idea 2018.3
* @ClassName:Demo3.java
* @Description:switch的應用
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-9-5 下午1:56:14
* @Version:1.0
*/
public class Test1 {
/*
* 需求:
* 如果第一名,參加麻省理工大學組織的1個月夏令營
* 如果第二名,獎勵惠普筆記本電腦一部
* 如果第三名,獎勵移動硬盤一個
* 否則,不給任何獎勵
* 分析需求: //變量 rank 名次
*/
public static void main(String[] args) {
// ifMethod();
// 聲明變量
// int rank=1;//寫死,代碼沒有靈活性了
// 用Scanner對象輸入數據 三步走: 引包 創建對象 使用
Scanner input = new Scanner(System.in);
// 用變量接收輸入的值 //簡潔 好用 複用
System.out.print("請輸入名次:");
//int rank = input.nextInt();
// switch的使用
String rank = input.next();
/*
使用switch語句要注意以下幾點:
1.多個case後的常量不能重複
2.switch後的小括號中的數據類型只允許爲:
基本數據類型:char byte short int
引用數據類型:String enum(枚舉,後面會學)
3.switch語句的前後順序可以進行顛倒。
*/
switch (rank) {
//和if中的else的功能一樣,只有switch中的case全都不匹配時,就會選擇默認的選項default
default:
System.out.println("不給任何獎勵 ");
//不要忘記break
break;
case "a":
System.out.println("參加麻省理工大學組織的1個月夏令營");
//不要忘記break
break;
case "b":
System.out.println("獎勵惠普筆記本電腦一部 ");
//不要忘記break
break;
case "c":
System.out.println("獎勵移動硬盤一個 ");
//不要忘記break
break;
}
}
private static void ifMethod() {
// 聲明變量
// int rank=1;//寫死,代碼沒有靈活性了
// Scanner對象 三步走: 引包 創建對象 使用
Scanner input = new Scanner(System.in);
// 用變量接收輸入的值 //簡潔 好用 複用
System.out.print("請輸入名次:");
int rank = input.nextInt();
// 多重if
if (rank == 1) {
System.out.println("參加麻省理工大學組織的1個月夏令營");
} else if (rank == 2) {
System.out.println("獎勵惠普筆記本電腦一部 ");
} else if (rank == 3) {
System.out.println("獎勵移動硬盤一個 ");
} else {
System.out.println("不給任何獎勵");
}
}
}
break跳出switch或循環小知識(break案例演示請看下一章循環結構):
使用場景:
1.在選擇結構switch語句中使用
2.在循環語句中使用
3.其它場景使用沒有作用
作用:
結束(終止)switch或者循環
default的作用:
和if中的else的功能一樣,只有switch中的case全都不匹配時,就會選擇默認的選項default
switch與多重if的區別
- 相同點:
都是用來處理多分支條件的結構
- 異同點:
switch選擇結構:只能處理等值條件判斷的情況
多重if選擇結構:沒有switch選擇結構的限制,特別適合某個變量處於某個連續區間時的情況
- Java入門-Java學習路線課程第一課:初識JAVA
- Java入門-Java學習路線課程第二課:變量與數據類型
- Java入門-Java學習路線課程第四課:循環結構
- Java入門-Java學習路線課程第五課:一維數組
- Java入門-Java學習路線課程第六課:二維數組
- Java入門-Java學習路線課程第七課:類和對象
- Java入門-Java學習路線課程第八課:方法和方法重載
- Java入門-Java學習路線擴展課程:equals的使用
- Java入門-Java學習路線課程面試篇:取商 / 和取餘(模) % 符號的使用
- Java進階-Java學習路線課程第一課:Java集合框架-ArrayList和LinkedList的使用
- Java進階-Java學習路線課程第二課:Java集合框架-HashSet的使用及去重原理
- JavaWEB-Java學習路線課程:使用MyEclipse工具新建第一個JavaWeb項目(一)
- JavaWEB-Java學習路線課程:使用MyEclipse工具新建項目時配置Tomcat服務器的方式(二)
- Spring框架-Java學習路線課程第一課:Spring核心
- Spring框架-Java學習路線課程:Spring的擴展配置
- Springboot框架-Java學習路線課程:Springboot框架的搭建之maven的配置
- java學習:在給學生演示用Myeclipse10.7.1工具生成War時,意外報錯:SECURITY: INTEGRITY CHECK ERROR
- 使用jquery發送Ajax請求的幾種異步刷新方式
- idea Springboot啓動時內嵌tomcat報錯- An incompatible version [1.1.33] of the APR based Apache Tomcat Native
- 一個簡單的SSM框架Demo(登錄(包含攔截器)和註銷