Java流程控制包括順序控制、條件控制和循環控制。
順序控制,就是從頭到尾依次執行每條語句操作。條件控制,基於條件選擇執行語句,比方說,如果條件成立,則執行操作A,或者如果條件成立,則執行操作A,反之則執行操作B。循環控制,又稱為回路控制,根據循環初始條件和終結要求,執行循環體內的操作。
順序結構只能順序執行,不能進行判斷和選擇,因此需要分支結構。
Java有兩種分支結構:
Java中有三種主要的循環結構:
package com.hgd.study2;
import java.util.Scanner;
/**
* java的流程控制:順序結構 分之機構 循環結構
*
* @author HuTiger 順序結構:通過debug模式可以看出java程序的運行時順序結構的
*
* 分支結構:if語句
*
*/
public class ProcessControl {
public static void main(String[] args) {
// IfStudy();
// SwitchCaseStudy();
// WhileStudy();
}
/*
* IF語句
*/
private static void IfStudy() {
/*
* 根據條件表達的世界(true||false)來判斷是否進入語句塊 if(條件表達式){ 語句塊 } 繼續執行後面的語句
*/
int i = 100;
if (i > 60) {
System.out.println(i);
}
System.out.println("後面需要執行的語句");
/*
* if else 語句
*/
// system.in就是標准輸入,可以獲取從鍵盤輸入的值
// 通過scanner(jdk提供給我們的工具)來處理獲取到的數據
System.out.println("請輸入分數!");
Scanner sc = new Scanner(System.in);
int j = sc.nextInt();// 把用戶輸入的數賦值給j
System.out.println("控制台獲取到的值是:" + j);
if (j > 60) {
System.out.println("通過");
} else {
System.out.println("沒通過");
}
System.out.println("當if else 執行後需要執行的內容");
/*
* if else if else if ...else
*/
// 場景:將一個5(score)分制分為 :5分的評價等級A 4==B 3==C 其他是D
Scanner sca = new Scanner(System.in);
int score = sca.nextInt();
if (score >= 0 && score <= 5) {
if (score == 5) {
System.out.println("A");
} else if (score == 4) {
System.out.println("B");
} else if (score == 3) {
System.out.println("C");
} else {
System.out.println("D");
}
} else {
System.out.println("輸入不合法");
}
/*
* 練習:百分制系統 90-100 優秀 75-89 良好 60-74 合格 其他 不合格
*/
Scanner scan = new Scanner(System.in);
int score1 = scan.nextInt();
if (score1 >= 0 && score1 <= 100) {
if (score1 >= 90 && score1 <= 100) {
System.out.println("優秀");
} else if (score1 >= 75) {
System.out.println("良好");
} else if (score1 >= 60) {
System.out.println("合格");
} else {
System.out.println("不合格");
}
} else {
System.out.println("輸入不合法");
}
}
/*
* switch case
*/
private static void SwitchCaseStudy() {
/*
* 分支語句:switch case key:需要比較的表達式 value:與表達式進行比較的值
* 執行流程:如果key和value比較的結果為true,那麼將執行case部分的代碼,case部分可以有多個 類似於else if 部分
* 區別是key和value之間的比較只能是== default部分是不滿足以上任何去執行的代碼 ,類似於else
*
* switch 後面括號中的表達式的值必須是符合byte,char,short,int類型的常量表達式 jdk1.7以後可以使用string
* ,而不能用浮點型或long類型
*
* switch(key) { case value: break; default: break; }
*/
// 場景:將一個5(score)分制分為 :5分的評價等級A 4==B 3==C 其他是D
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
switch (score) {
case 5:
System.out.println("A");
break;// 標准寫法 break不能少 跳出當前語句塊,如果沒有break會直接進入下一個case語句
case 4:
System.out.println("B");
break;
case 3:
System.out.println("C");
break;
default:
System.out.println("D");
break;
}
}
/*
* while 循環和do while
*/
private static void WhileStudy() {
/*
* 執行流程: 當條件表達式為true的時候進入代碼塊,執行需要執行的代碼 當條件表達式為false的時候執行後面的語句
*
* while(條件表達式){ 需要執行的代碼部分 } 後面的語句
*/
/*
* 場景:輸入1-100的整數分析:給輸出的值一個變量I,當i在1-100之間的時候輸出
*/
int i = 1;// 循環的起點
while (i <= 100) {
System.out.println(i);
// 給出循環的步長
i++;
}
System.out.println("打印結束");
/*
* do while
*
* do{
* }while(條件表達式)
*/
int a=1;
do{//語句塊中的內容無論條件是否滿足都會先執行一次
System.out.println(a);
a++;
}
while(a<=0);
}
/*
* for循環
*/
private static void ForStudy() {
/*
* 場景:打印1-100 int i=1是循環的起點 i++ 循環的補償 i<=100 循環的條件
*/
for (int i = 1; i <= 100; i++) {
System.out.println(i);
}
System.out.println("打印結束");
}
}