Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära If-Else-Kedja | Styrstrukturer
C#-Grunder

bookIf-Else-Kedja

Vi kan lägga till ytterligare villkor med nyckelordet else if. De extra villkoren utvärderas om de tidigare villkoren inte är uppfyllda.

if (expression) 
{
    // code if first condition is met
}
else if (expression)
{
    // code if second condition is met
} else 
{
    // code if no condition is met
}


Låt oss titta på ett exempel med en if else-kedja:

main.cs

main.cs

copy
1234567891011121314151617181920212223242526
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value_1 = 9; int value_2 = 7; if(value_1 < value_2) { Console.WriteLine("Value 1 is smaller than Value 2"); } else if(value_1 > value_2) { Console.WriteLine("Value 1 is bigger than Value 2"); } else if(value_1 == value_2) { Console.WriteLine("Value 1 is equal to Value 2"); } } } }

I programmet ovan kedjade vi villkor med if-else if. Detta kallas villkorskedjning. Det första villkoret value_1 < value_2 utvärderas. Eftersom det är false hoppar programmet till nästa villkor value_1 > value_2 som är true och därför körs dess kodblock och kedjan avslutas.

Huvudegenskapen hos villkorskedjning är att kedjan slutar exekveras så snart ett villkor är uppfyllt.

Titta på följande kod:

main.cs

main.cs

copy
12345678910111213141516171819202122232425
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value = 10; if(value > 5) { Console.WriteLine("Value is bigger than 5"); } else if(value > 7) { Console.WriteLine("Value is bigger than 7"); } else if(value > 9) { Console.WriteLine("Value is bigger than 9"); } } } }

Även om alla tre villkor är true, slutar det att exekvera vid det första villkoret eftersom det är en kedja.

Nu ska vi försöka skriva det med enkla if-nyckelord utan kedjning:

main.cs

main.cs

copy
123456789101112131415161718192021222324252627
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value = 10; if(value > 5) { Console.WriteLine("Value is bigger than 5"); } if(value > 7) { Console.WriteLine("Value is bigger than 7"); } if(value > 9) { Console.WriteLine("Value is bigger than 9"); } } } }

I det ovanstående fallet utvärderas varje villkor individuellt och behandlas inte som en del av någon kedja, därför skrivs alla tre satser ut.

Vi kan också lägga till nyckelordet else i slutet av en if-else-kedja, vilket kommer att köras om inget villkor uppfylls:

main.cs

main.cs

copy
1234567891011121314151617181920212223242526
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value_1 = 9; int value_2 = 7; if(value_1 < value_2) { Console.WriteLine("Value 1 is smaller than Value 2"); } else if(value_1 > value_2) { Console.WriteLine("Value 1 is bigger than Value 2"); } else { Console.WriteLine("Value 1 is equal to Value 2"); } } } }
question mark

Vilka rader kommer att inkluderas i utdata för följande program?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 9

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 1.59

bookIf-Else-Kedja

Svep för att visa menyn

Vi kan lägga till ytterligare villkor med nyckelordet else if. De extra villkoren utvärderas om de tidigare villkoren inte är uppfyllda.

if (expression) 
{
    // code if first condition is met
}
else if (expression)
{
    // code if second condition is met
} else 
{
    // code if no condition is met
}


Låt oss titta på ett exempel med en if else-kedja:

main.cs

main.cs

copy
1234567891011121314151617181920212223242526
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value_1 = 9; int value_2 = 7; if(value_1 < value_2) { Console.WriteLine("Value 1 is smaller than Value 2"); } else if(value_1 > value_2) { Console.WriteLine("Value 1 is bigger than Value 2"); } else if(value_1 == value_2) { Console.WriteLine("Value 1 is equal to Value 2"); } } } }

I programmet ovan kedjade vi villkor med if-else if. Detta kallas villkorskedjning. Det första villkoret value_1 < value_2 utvärderas. Eftersom det är false hoppar programmet till nästa villkor value_1 > value_2 som är true och därför körs dess kodblock och kedjan avslutas.

Huvudegenskapen hos villkorskedjning är att kedjan slutar exekveras så snart ett villkor är uppfyllt.

Titta på följande kod:

main.cs

main.cs

copy
12345678910111213141516171819202122232425
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value = 10; if(value > 5) { Console.WriteLine("Value is bigger than 5"); } else if(value > 7) { Console.WriteLine("Value is bigger than 7"); } else if(value > 9) { Console.WriteLine("Value is bigger than 9"); } } } }

Även om alla tre villkor är true, slutar det att exekvera vid det första villkoret eftersom det är en kedja.

Nu ska vi försöka skriva det med enkla if-nyckelord utan kedjning:

main.cs

main.cs

copy
123456789101112131415161718192021222324252627
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value = 10; if(value > 5) { Console.WriteLine("Value is bigger than 5"); } if(value > 7) { Console.WriteLine("Value is bigger than 7"); } if(value > 9) { Console.WriteLine("Value is bigger than 9"); } } } }

I det ovanstående fallet utvärderas varje villkor individuellt och behandlas inte som en del av någon kedja, därför skrivs alla tre satser ut.

Vi kan också lägga till nyckelordet else i slutet av en if-else-kedja, vilket kommer att köras om inget villkor uppfylls:

main.cs

main.cs

copy
1234567891011121314151617181920212223242526
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value_1 = 9; int value_2 = 7; if(value_1 < value_2) { Console.WriteLine("Value 1 is smaller than Value 2"); } else if(value_1 > value_2) { Console.WriteLine("Value 1 is bigger than Value 2"); } else { Console.WriteLine("Value 1 is equal to Value 2"); } } } }
question mark

Vilka rader kommer att inkluderas i utdata för följande program?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 9
some-alt