If-else -rakenne

If-else -rakenne on kaikkein yksinkertaisin ehtorakenne ja kaikista yleisimmin käytetty erilaisissa tilanteissa. Rakenteen yleinen muoto on seuraava:

if (ehto1)
{
  //komennot1
}
else if(ehto2)
{
  //komennot2
}
else
{
  //komennot3
} 

Mikäli ehto1 on voimassa, niin ohjelmasta suoritetaan komennot1. Mikäli ehto1 ei ole voimassa, niin tulkki katsoo, onko ehto2 voimassa. Mikäli ehto2 on voimassa niin komennot2 suoritetaan. Mikäli ehto2 ei ole voimassa, niin komennot3 suoritetaan joka tapauksessa. Komennoista 1, 2 ja 3 suoritetaan vain yhdet!

Jos lohkoon tulee vain yksi ainoa komento, niin aaltosulkuja ei tarvitse. Aaltosulkujen käyttö on kuitenkin suotavaa, sillä ne

  • Helpottavat ohjelman lukemista
  • Lohkoon on myöhemmin helppo lisätä komentoja
  • Ehtorakenteesta voidaan jättää

else-haaroja haluttaessa pois, eli yksinkertaisin if-rakenne on seuraava:

if (ehto)
{
  komennot
} 

Rakenteeseen voidaan lisäksi liittää niin monta else if (ehto) haaraa kuin halutaan, mutta niistä suoritettaan vain yksi.

Esimerkki. Ohjelma kysyy käyttäjältä luvun ja antaa palautetta luvusta.

/*
   Ohjelma kysyy käyttäjältä luvun ja vertailee sitä ohjelman
   sisäiseen, käyttäjälle salaiseen lukuun
*/
 import java.io.*;
 
class Isompi
{
  public static void main(String[] args) throws IOException
  {
	BufferedReader	lukija =  new BufferedReader(new
		InputStreamReader(System.in));
 
	String syote;
	int luku;
 
	System.out.println("Anna kokonaisluku:");
 
	syote = lukija.readLine();
	luku = Integer.parseInt(syote);
 
	if (luku > 100)
	{
	  System.out.println("Onpa iso luku.");
	}
	else if(luku==100)
	{
	  System.out.println("Minullakin on tasan sata!");
	}
	else
	{
	  System.out.println("Minullapa	on isompi luku.");
	}
   }
}

/*
   Ohjelmassa kysytään käyttäjältä salasana ja verrataan sitä
   salasanaan
*/
import java.io.*;
 
class Salasana
{
   public static void main(String[] args) throws IOException
   {
	BufferedReader	lukija =  new BufferedReader(new
		InputStreamReader(System.in));
 
	String syote;
 
	System.out.print("Anna salasana:");
 
	syote = lukija.readLine();
 
	if (syote.equals("salasana"))
	{
	  System.out.println("Salasana on oikein.");
          System.out.println("Siirrymme ohjelman salaiseen osioon...");
	}
	else
	{
	  System.out.println("Salasana oli väärin!!!");
	}
   }
}

Tehtäviä

Keskustelu

Kirjoita kommenttisi (wiki kirjoitus sallittu):
ZNUCC
java/rakenteet/if_else.txt · Viimeksi muutettu: 2006/04/01 11:04 (ulkoinen muokkaus)
 
Jollei muuta ole mainittu, niin sisältö tässä wikissä on lisensoitu seuraavalla lisenssillä: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki