1. Pagkakasunod-sunod ng ifmga pahayag

Minsan ang isang programa ay kailangang magsagawa ng maraming iba't ibang mga aksyon depende sa halaga ng isang variable o sa halaga ng isang expression.

Sabihin nating ang ating gawain ay ganito:

  • Kung ang temperatura ay mas malaki kaysa sa 20mga degree, pagkatapos ay ilagay sa isang kamiseta
  • Kung ang temperatura ay mas malaki kaysa sa 10mga degree at mas mababa sa (o katumbas ng) 20, pagkatapos ay magsuot ng panglamig
  • Kung ang temperatura ay mas mataas kaysa sa 0mga degree at mas mababa sa (o katumbas ng) 10, pagkatapos ay magsuot ng kapote
  • Kung ang temperatura ay mas mababa sa 0degrees, pagkatapos ay ilagay sa isang amerikana.

Narito kung paano ito maipakita sa code:

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-elseang mga pahayag ay maaaring mailagay sa loob ng isa't isa. Ginagawa nitong posible na ipatupad ang medyo kumplikadong lohika sa isang programa.

Ngunit ang halimbawa sa itaas ay kawili-wili din dahil maaari nating gawing mas simple ang code sa pamamagitan ng pag-alis ng mga kulot na braces:

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");

Gayunpaman, karaniwang isinulat ng mga programmer ang construct na ito nang medyo naiiba:

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");

Ang lahat ng tatlong mga halimbawang ito ay katumbas.


2. Nuances ng elseblock

Isang mahalagang punto:

Kung hindi gagamit ng mga kulot na brace sa isang if-elseconstruct, ang elsetinutukoy ay ang pinakamalapit na naunang if.

Halimbawa:

Ang aming code Paano ito gagana
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");
}

Kung titingnan mo ang code sa kaliwa, tila ang magiging output ng screen ay "Hindi mo kailangang magtrabaho". Ngunit hindi iyon ang kaso. Sa katotohanan, ang elseblock at ang "You don't have to work" na pahayag ay nauugnay sa pangalawa (ang mas malapit) ifna pahayag.

Sa code sa kanan, ang nauugnay ifat elsenaka-highlight sa pula. Bukod pa rito, ang mga kulot na brace ay inilalagay nang hindi malabo, na malinaw na nagpapakita kung anong mga aksyon ang isasagawa. Ang string na Hindi mo kailangang magtrabaho ay hindi kailanman ipinapakita kapag agemas malaki kaysa sa 60?



3. Halimbawa ng paggamit ng if-elsepahayag

Dahil na-explore natin if-elsenang mabuti ang pahayag, magbigay tayo ng halimbawa:

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
   }
}
Ipinapakita ang pinakamababang dalawang numero