5.1 順序與選擇結構
5.1.1 順序結構
順序結構是程式中最簡單、最基本的流程控制結構,它按照程式中語句出現的先後順序依次執行,直到程式的結束。
順序結構示例:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
//上述程式中,只有一條語句`System.out.println("Hello, World!");`,它按照順序執行,輸出"Hello, World!"。
5.1.2 選擇結構
選擇結構又叫分支結構,是根據條件表示式的值來決定程式的執行路徑。Java語言提供了兩種選擇結構:if語句和switch語句。
5.1.2.1 if語句
if語句用於根據條件的真假來決定程式的執行路徑。if語句有三種形式:if語句、if-else語句和if-else if-else語句。
if語句:if語句用於根據條件表示式的值來決定是否執行某段程式碼。如果條件表示式的值為true,則執行if語句塊中的程式碼;如果條件表示式的值為false,則不執行if語句塊中的程式碼。
1.單分支結構
if (條件表示式) {
// 條件為真時執行的程式碼塊
}
示例:
int num = 10;
if (num > 0) {
System.out.println("num是正數");
}
System.out.println("程式結束");
2.雙分支結構
if (條件表示式) {
// 條件為真時執行的程式碼塊
} else {
// 條件為假時執行的程式碼塊
}
示例:
int num = 10;
if (num > 0) {
System.out.println("num是正數");
}
else {
System.out.println("num是負數");
}
System.out.println("程式結束");
3.多分支結構
if (條件表示式1) {
// 條件1為真時執行的程式碼塊
} else if (條件表示式2) {
// 條件2為真時執行的程式碼塊
} else if (條件表示式3) {
// 條件3為真時執行的程式碼塊
} else {
// 所有條件都為假時執行的程式碼塊
}
示例:
int num = 10;
if (num > 0) {
System.out.println("num是正數");
}
else if (num < 0) {
System.out.println("num是負數");
}
else {
System.out.println("num是零");
}
System.out.println("程式結束");
多分支結構典型應用,求一元二次方程的根。中國古代數學家秦九韶提出了“秦九韶演算法”,該演算法可以用來求解一元二次方程。一元二次方程的一般形式為:ax2+bx+c=0,其中a、b、c為常數,且a≠0。根據判別式b2-4ac的值,可以判斷方程的根的情況:
import java.util.Scanner;
Scanner input = new Scanner(System.in);
System.out.print("請輸入a的值:");
double a = input.nextDouble();
System.out.print("請輸入b的值:");
double b = input.nextDouble();
System.out.print("請輸入c的值:");
double c = input.nextDouble();
double delta = b * b - 4 * a * c;
if (delta >1e-6 ) {
double x1 = (-b + Math.sqrt(delta)) / (2 * a);
double x2 = (-b - Math.sqrt(delta)) / (2 * a);
System.out.println("方程有兩個實根:x1=" + x1 + ",x2=" + x2);
} else if (delta == 0) {
double x = -b / (2 * a);
System.out.println("方程有一個實根:x=" + x);
} else {
double realPart = -b / (2 * a); // 實部
if(1/(10^6)==0.0){
System.out.println("1/(10^6)等於0");
}
5.1.2.2 switch語句
switch語句用於根據表示式的值來選擇執行不同的程式碼塊。switch語句有三種形式:switch語句、switch-case語句和switch-case-default語句。