IF-Satsen

Detta är en konstruktion som du kan använda för att styra vad som ska göras i ditt program. Nästan alla program reagerar olika beroende på vad du matar in i dem. Idag ska vi lära oss att göra olika saker beroende på vad som matas in.

Kort om flöde

I alla programmeringsspråk finns något som man kallar för selection. Att man på något sätt kan välja vad som ska göras eller inte. Det allra vanligaste sättet att styra program är att använda den världsberömda if-satsen. Med den formulerar man ett villkor i programkoden som antingen kan vara sant eller falskt. Om villkoret stämmer så körs den kod man formulerat, annars hoppar exekveringen förbi. Man kan även lägga till else som då bara körs om if-satsen inte körs.

Exempel:

Exempel: IF

if( villkor) 
{
   //Här placerar du kod som ska köras om villkoret är sant.
}

Alternativt:

Exempel: IF/else

if( villkor) 
{
   //Här placerar du kod som ska köras om villkoret är sant.
}
else
{
   //Här placerar du kod som bara körs om villkoret inte är sant.
}

Innan vi tittar på några exempel så måste vi också lära oss hur vi formulerar dessa villkor. Det enda språket som datorerna förstår är matematik. En viktig sak att veta är att:

  • Ett villkor kan bara vara sant eller falskt. true eller false.
  • En IF-sats körs bara om villkoret är sant!

Kort om villkor

Villkor formulerar man som boolsk'a uttryck, d v s "sant eller falskt"-logik. Man formulerar alltså uttryck som antingen kan stämma eller vara falska (1 eller 0). Med hjälp av detta kan vi formulera villkoren till våra if- och while-satser. Till sin hjälp har man olika operatorer.

Listan med operatorer nedan måste du lära dig för att snabbt kunna formulera vad du vill att ditt program ska göra. Exempel följer.

Logiska operatorer

== Jämförelse. Lika med.
!= Skiljt från. Inte lika med.
! Invertering (NOT)
< Mindre än
> Större än
<= Mindre eller lika med.
>= Större eller lika med.
&& OCH (AND) för att kombinera flera villkor.
|| ELLER (OR) för att kombinera flera villkor.

I exemplet nedan är tal1 och tal2 heltalsvariabler (int).

Exempel: Olika villkor


if( tal1>=20)
{
	//Om tal1 är större eller lika med 20 då gäller denna IF-sats.
}
if( tal1==2 && tal2<10)
{
	//Om tal1 är lika med 2 OCH tal2 under 10, då gäller denna IF-sats.
}
if( tal1!=3 || tal2>=5)
{	
	//Om tal1 är skiljt från 3 ELLER tal2 större eller lika med 5, då gäller //denna IF-sats.
}

Matematiska operatorer

När man formulerar villkor blandar man gärna in matematiska funktioner för att avgöra vad man ska göra. T ex kanske man vill göra något speciellt om man har ett jämnt eller udda antal av något. Till vår hjälp har vi följande mycket användbara operatorer:

+ - * / De vanliga räknesätten
% Resten vid en division (modulo)

Studera följande kod och gissa vad programmet gör.

Exempel: Console Application

static void Main(string[] args)
{
	//
	// TODO: Add code to start application here
	//
	Console.WriteLine("Mata in ett heltal");
	string inmatat = Console.ReadLine();
	int x = int.Parse(inmatat);
	
	if( x<10)
	{
		Console.WriteLine("Det var mindre än 10!");
	}
	else
	{
		Console.WriteLine("Det var större eller lika med 10!");
	}
	Console.ReadLine();
}

I följande exempel så används endast en Button , Label och en TextBox. Dubbelklicka på knappen i det grafiska läget för att skapa event'et som kopplas till själva knapptryckningen.

Exempel: Window Application

namespace MyFirstWindowApplication
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Konverterar text till tal.. om det går..
            int tal = int.Parse(textBox1.Text);

            if (tal > 100)
            {
                label1.Text = "Det var ett stort tal!";
            }
            else
            {
                label1.Text = "Det var ett fjuttigt tal!";
            }
        }
    }
} 

bild

If, else if och else

Tillsammans med en if-sats kan du ha ett antal else if-block och eventuellt ett avslutande else-block. Detta garanterar dig att endeast ETT block körs i din kod. Vilket block det blir beror på vilket villkor som FÖRST inträffar.

Skulle inget villkor vara sant så körs alltid den avslutande else-satsen, om det finns en sådan. Se exemplet nedan.

Exempel: If/else if/else

if( ålder < 18) 
{
   //Detta block körs då vi t.ex. har en ålder på 17
   Console.WriteLine("Du har inget körkort!");
}
else if(ålder == 18)
{
	//Vid ett värde på exakt 18 så körs detta block.
	Console.WriteLine("Dags att ta körkort?");
}
else
{
	//Om inget av ovanstående villkor gäller så körs else-blocket.
	Console.WriteLine("Kör försiktigt!");	
}

Man kan ha hur många else if-block som helst men du måste inleda med en if-sats.

Har du flera enskilda if-satser så kan alla gälla. Ingen utesluter någon annan.

Videogenomgång

Övningar

Övning 1

Skriv ett program där du matar in mönstredjupet på sommardäck. Om mönsterdjupet är under 1,6mm skall texten "Olagligt däck!" skrivas ut, annars ska texten "Lagligt däck!" skrivas ut. Använd if och else. Använd även lämplig variabeltyp.

bild

Komplettera gärna sedan programmet med att skriva ut hur många mm du har kvar innan däcket blir olagligt i det fall du matar in ett lagligt däck.

Övning 2

Du ska registrera ålder vid en mässa. Beroende på ålder så ska besökarna få olika färger på sin bricka. Skriv ett program som svarar med rätt färg enligt tabellen:
  • 0-12, vit
  • 13-18, grön
  • 19-25, röd
  • 26-99, blå
  • Övrig ålder, skriv ut "Ogiltig ålder"

bild

Övning 3

Skriv ett program där två tal matas in. Använd variabeltypen decimal. Programmet ska sedan tala om vilket tal som var störst och skriva ut detta. Om båda talen var lika så ska detta presenteras. Se exempel nedan:

bild

Övning 4

Skriv ett program som undersöker delbarhet med 7. Använd heltal (int). Ett tal matas in och programmet svarar om det är jämt delbart med 7 eller om det blir någon rest. Se exempel nedan:

bild

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Scroll to top