สาขาโครงสร้างชวา - ถ้า ... อื่น / สวิทช์
โครงสร้างลำดับเพียงเพื่อการดำเนินการที่ไม่สามารถใช้ดุลยพินิจและการเลือกและดังนั้นจึงจำเป็นต้องมีโครงสร้างที่แยก
Java มีโครงสร้างสาขาที่สอง:
- ถ้ามีคำสั่ง
- งบเปลี่ยน
ถ้ามีคำสั่ง
หากคำสั่งมีนิพจน์บูลีนและหนึ่งหรืองบ
ไวยากรณ์
ถ้ามีคำสั่งที่มีไวยากรณ์ต่อไปนี้:
if(布尔表达式) { //如果布尔表达式为true将执行的语句 }
ถ้านิพจน์บูลีประเมินจริงถ้าบล็อกคำสั่งของรหัส มิฉะนั้นหากคำสั่งบล็อกที่อยู่เบื้องหลังการดำเนินการรหัส
public class Test { public static void main(String args[]){ int x = 10; if( x < 20 ){ System.out.print("这是 if 语句"); } } }
รหัสดังกล่าวจะรวบรวมผลมีดังนี้
这是 if 语句
ถ้า ... อื่นคำสั่ง
ภายหลังถ้ามีคำสั่งกับงบอื่นเมื่อนิพจน์บูลีนของงบถ้าเป็นเท็จบล็อกคำสั่งจะถูกดำเนินการอื่น ๆ
ไวยากรณ์
ถ้า ... อื่นใช้ดังนี้
if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的值为false }
ตัวอย่าง
public class Test { public static void main(String args[]){ int x = 30; if( x < 20 ){ System.out.print("这是 if 语句"); }else{ System.out.print("这是 else 语句"); } } }
รหัสดังกล่าวจะรวบรวมผลมีดังนี้
这是 else 语句
ถ้า ... ถ้า ... อื่นอื่นคำสั่ง
ภายหลังถ้ามีคำสั่งกับ elseif ... คำสั่งอื่นคำสั่งนี้สามารถตรวจสอบความหลากหลายของสถานการณ์ที่เป็นไป
ใช้ในกรณีที่อื่นถ้าคำสั่งอื่น ๆ ที่จำเป็นสำหรับการให้ความสนใจไปยังจุดต่อไปนี้:
- ถ้ามีคำสั่งมากที่สุดคนหนึ่งงบอื่นก่อนที่งบอื่นทั้งหมด elseif งบ
- ถ้างบสามารถมีงบ elseif หลายพวกเขาต้องอยู่ก่อนคำสั่งอื่น
- เมื่อใครถ้ามีคำสั่งจะถูกตรวจพบว่าเป็นความจริงอื่น ๆ อื่นถ้าและงบอื่น ๆ จะถูกข้ามดำเนินการ
ไวยากรณ์
ถ้า ... ไวยากรณ์อื่นเป็นดังนี้:
if(布尔表达式 1){ //如果布尔表达式 1的值为true执行代码 }else if(布尔表达式 2){ //如果布尔表达式 2的值为true执行代码 }else if(布尔表达式 3){ //如果布尔表达式 3的值为true执行代码 }else { //如果以上布尔表达式都不为true执行代码 }
ตัวอย่าง
public class Test { public static void main(String args[]){ int x = 30; if( x == 10 ){ System.out.print("Value of X is 10"); }else if( x == 20 ){ System.out.print("Value of X is 20"); }else if( x == 30 ){ System.out.print("Value of X is 30"); }else{ System.out.print("This is else statement"); } } }
รหัสดังกล่าวจะรวบรวมผลมีดังนี้
Value of X is 30
ถ้าซ้อนกัน ... คำสั่งอื่น
ซ้อน IF-อื่นคำสั่งถูกต้องตามกฎหมาย ซึ่งหมายความว่าคุณสามารถใช้หาก elseif หรือคำสั่งอื่นถ้าคำสั่งหรือ elseif
ไวยากรณ์
ซ้อน IF ... อื่นไวยากรณ์เป็นดังนี้:
if(布尔表达式 1){ ////如果布尔表达式 1的值为true执行代码 if(布尔表达式 2){ ////如果布尔表达式 2的值为true执行代码 } }
คุณสามารถเป็นเช่นถ้ามีคำสั่งที่ซ้อนกันอื่นถ้า ... อื่น
ตัวอย่าง
public class Test { public static void main(String args[]){ int x = 30; int y = 10; if( x == 30 ){ if( y == 10 ){ System.out.print("X = 30 and Y = 10"); } } } }
รหัสดังกล่าวจะรวบรวมผลมีดังนี้
X = 30 and Y = 10
งบเปลี่ยน
สลับคำสั่งในการกำหนดค่าของตัวแปรที่มีช่วงของค่าเท่ากันและแต่ละค่าที่เรียกว่าสาขา
ไวยากรณ์
สวิทช์ไวยากรณ์เป็นดังนี้:
switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数量的case语句 default : //可选 //语句 }
งบเปลี่ยนมีกฎต่อไปนี้:
- งบเปลี่ยนเพียงชนิดตัวแปรเป็นไบต์สั้น int หรือถ่าน
- งบเปลี่ยนสามารถมีงบหลายกรณี เบื้องหลังแต่ละกรณีตามด้วยลำไส้ใหญ่และความคุ้มค่าที่จะเปรียบเทียบ
- กรณีชนิดข้อมูลงบค่าจะต้องเป็นเช่นเดียวกับชนิดข้อมูลของตัวแปรและสามารถเป็นค่าคงที่หรือตัวอักษร
- เมื่อค่าของตัวแปรเท่ากับค่าของคำสั่งกรณีที่คำสั่งหลังจากคำสั่งกรณีที่จะถูกดำเนินการจนกว่าคำสั่งแบ่งจะปรากฏออกมาจากงบเปลี่ยน 3
- เมื่อพบคำสั่งแบ่งงบเปลี่ยนถูกยกเลิก โปรแกรมกระโดดไปคำสั่งดังต่อไปนี้คำสั่งสวิทช์ที่จะดำเนินการ คำสั่งกรณีที่ไม่จำเป็นต้องมีคำสั่งหยุดพัก หากมีคำสั่งแบ่งปรากฏไม่มีโปรแกรมจะยังคงมีคำสั่งกรณีต่อไปจนกว่าจะมีคำสั่งแบ่ง
- งบเปลี่ยนสามารถมีสาขาเริ่มต้นที่จะต้องเป็นสาขาสุดท้ายของงบเปลี่ยน การดำเนินการเริ่มต้นในกรณีที่ไม่มีงบและค่าตัวแปรเวลาเท่ากัน สาขาเริ่มต้นไม่จำเป็นที่จะทำลายคำสั่ง
ตัวอย่าง
public class Test { public static void main(String args[]){ //char grade = args[0].charAt(0); char grade = 'C'; switch(grade) { case 'A' : System.out.println("Excellent!"); break; case 'B' : case 'C' : System.out.println("Well done"); break; case 'D' : System.out.println("You passed"); case 'F' : System.out.println("Better try again"); break; default : System.out.println("Invalid grade"); } System.out.println("Your grade is " + grade); } }
รหัสดังกล่าวจะรวบรวมผลมีดังนี้
Well done Your grade is C