1. ลำดับของifข้อความ

บางครั้งโปรแกรมจำเป็นต้องดำเนินการหลายอย่างขึ้นอยู่กับค่าของตัวแปรหรือค่าของนิพจน์

สมมติว่างานของเราเป็นดังนี้:

  • หากอุณหภูมิสูงกว่า20องศาให้ใส่เสื้อ
  • หากอุณหภูมิสูงกว่า10องศาและน้อยกว่า (หรือเท่ากับ) 20ให้สวมเสื้อกันหนาว
  • หากอุณหภูมิสูงกว่า0องศาและน้อยกว่า (หรือเท่ากับ) 10ให้ใส่เสื้อกันฝน
  • หากอุณหภูมิต่ำกว่า0องศาให้ใส่เสื้อโค้ท

นี่คือวิธีที่สามารถแสดงเป็นรหัส:

int temperature = 9;

if (temperature > 20) {
   System.out.println("put on a shirt");
} else { // Here the temperature is less than (or equal to) 20
   if (temperature > 10) {
      System.out.println("put on a sweater");
   } else { // Here the temperature is less than (or equal to) 10
      if (temperature > 0) {
         System.out.println("put on a raincoat");
      } else // Here the temperature is less than 0
         System.out.println("put on a coat");
   }
}

If-elseงบสามารถซ้อนกัน สิ่งนี้ทำให้สามารถใช้ตรรกะที่ค่อนข้างซับซ้อนในโปรแกรมได้

อย่างไรก็ตาม โปรแกรมเมอร์มักจะเขียนโครงสร้างนี้แตกต่างกันเล็กน้อย:

int temperature = 9;

if (temperature > 20) {
   System.out.println("put on a shirt");
} else if (temperature > 10) { // Here the temperature is less than (or equal to) 20
   System.out.println("put on a sweater");
} else if (temperature > 0) { // Here the temperature is less than (or equal to) 10
   System.out.println("put on a raincoat");
} else { // Here the temperature is less than 0
   System.out.println("put on a coat");
}

ตัวอย่างทั้งสองที่ให้มานั้นเทียบเท่ากัน แต่ตัวอย่างที่สองนั้นเข้าใจง่ายกว่า


2. ความแตกต่างของelseบล็อก

จุดสำคัญ:

หากไม่ได้ใช้วงเล็บปีกกาในif-elseโครงสร้าง ให้elseอ้างอิงไปยังค่าก่อนหน้าที่ใกล้เคียงifที่สุด

ตัวอย่าง:

รหัสของเรา มันจะทำงานอย่างไร
int age = 65;

if (age < 60)
   if (age > 20)
      System.out.println("You must work");
else
   System.out.println("You don't have to work");
int age = 65;

if (age < 60) {
   if (age > 20)
     System.out.println("You must work");
   else
     System.out.println("You don't have to work");
}

หากคุณดูรหัสทางด้านซ้าย ดูเหมือนว่าผลลัพธ์หน้าจอจะเป็น "คุณไม่ต้องทำงาน" แต่นั่นไม่ใช่กรณี ในความเป็นจริงelseบล็อกและคำสั่ง "คุณไม่ต้องทำงาน" จะเชื่อมโยงกับifคำสั่ง ที่สอง (ยิ่งใกล้)

ในโค้ดทางด้านขวา โค้ดที่เกี่ยวข้องifและelseจะถูกเน้นด้วยสีแดง นอกจากนี้ วงเล็บปีกกายังวางไว้อย่างชัดเจนซึ่งแสดงให้เห็นอย่างชัดเจนว่าจะดำเนินการใด สตริงที่คุณไม่ต้องทำงานจะไม่แสดงเมื่อageมีค่ามากกว่า60


4
งาน
Java Syntax,  ระดับบทเรียน
ล็อค
This age doesn't work for me…
Sometimes we all want to change our age. First, they don't want to sell you cigarettes or beer. Then your hair starts thinning and your back aches! A programmer may not have control over time, but he or she has total control over data in programs. In this task, we correct an error so that a Person object's age variable receives a different value.

3. ตัวอย่างการใช้if-elseคำสั่ง

เนื่องจากเราได้สำรวจif-elseข้อความนี้เป็นอย่างดีแล้ว ขอยกตัวอย่าง:

import java.util.Scanner;
public class Solution {
   public static void main(String[] args) {
     Scanner console = new Scanner(System.in); // Create a Scanner object
     int a = console.nextInt(); // Read the first number from the keyboard
     int b = console.nextInt(); // Read the second number from the keyboard
     if (a < b)                   // If a is less than b
       System.out.println(a);     // we display a
     else                         // otherwise
       System.out.println(b);     // we display b
   }
}
แสดงตัวเลขขั้นต่ำสองตัว