»ïÇ× Á¶°Ç ¿¬»êÀڴ ƯÀÌÇÏ°Ôµµ ÇÇ¿¬»êÀÚ°¡ ¼¼ °³³ª µÈ´Ù. ?¿Í :ÀÌ Â¦À» ÀÌ·ç¾î Á¶°Ç¿¡ µû¶ó µÎ °ª Áß Çϳª¸¦ ¼±ÅÃÇÑ´Ù. ±âº» Çü½ÄÀº ´ÙÀ½°ú °°´Ù. Á¶°Ç¹®¿¡ ¹Ýµå½Ã bool ŸÀÔÀÌ ¿Í¾ß ÇÑ´Ù.
(Á¶°Ç) ? °ª1:°ª2
Á¶°ÇÀÌ ÂüÀ̸é Àüü ¿¬»ê¹®Àº °ª1À» ¸®ÅÏÇÏ¸ç °ÅÁþÀÌ¸é °ª2·Î Æò°¡ÇÑ´Ù. Àüü½ÄÀÇ Å¸ÀÔÀÌ ÀÏÁ¤ÇØ¾ß ÇϹǷΠ°ª1°ú °ª2´Â µ¿ÀÏÇÑ Å¸ÀÔÀ̾î¾ß ÇÑ´Ù.
Console.WriteLine(bMale ? "³²ÀÚ":"¿©ÀÚ");
ÀÌ ¹®ÀåÀº bMale º¯¼öÀÇ °ª¿¡ µû¶ó "³²ÀÚ" ¶Ç´Â "¿©ÀÚ"¸¦ Ãâ·ÂÇÑ´Ù. µÑ Áß Çϳª¸¦ ¼±ÅÃÇÏ´Â ¹®Á¦¿©¼ if else ±¸¹®À¸·Î ´ëüÇÒ ¼ö ÀÖÁö¸¸ Äڵ尡 ´õ ±æ¾îÁø´Ù.
if (bMale) {
Console.WriteLine("³²ÀÚ");
} else {
Console.WriteLine("¿©ÀÚ");
}
if else´Â ¹®ÀåÀÌ¾î¼ ÀÓÀÇÀÇ ¸í·ÉÀ» ¼öÇàÇÒ ¼ö ÀÖ´Â ¹ü¿ë¼ºÀº ÀÖÁö¸¸ ½Ä ³»ºÎ¿¡ ¾µ ¼ö´Â ¾ø´Ù. ¹Ý¸é Á¶°Ç ¿¬»êÀڴ ǥÇö½ÄÀÌ¾î¼ ´Ù¸¥ ¹®Àå ³»ºÎ¿¡ ÀÛ¼ºÇÒ ¼ö ÀÖ¾î °£ÆíÇÏ´Ù. µÑ Áß Çϳª¸¦ ¼±ÅÃÇÒ ¶§´Â Á¶°Ç ¿¬»êÀÚ°¡ Á¦°ÝÀÌÁö¸¸ ¼Â ÀÌ»óÀÏ ¶§´Â if else ±¸¹®ÀÌ ´õ ½±´Ù.
condop |
½ÇÇà°á°ú |
using System;
class CSTest { static void Main() { int rank = 2; string medal; if (rank == 1) { medal = "±Ý¸Þ´Þ"; } else if (rank == 2) { medal = "Àº¸Þ´Þ"; } else { medal = "µ¿¸Þ´Þ"; } Console.WriteLine(medal); } } |
Àº¸Þ´Þ |
ÀÌ ¿¹Á¦´Â rank ¼øÀ§¿¡ µû¶ó ¸Þ´Þ ¹®ÀÚ¿À» °áÁ¤ÇÑ´Ù. Á¶°Ç ¿¬»êÀÚ¸¦ ÁßøÇؼ »ç¿ëÇϸé ÀÌ ¼±Åõµ °¡´ÉÇϸç Ç¥Çö½ÄÀ̱⠶§¹®¿¡ WriteLineÀÇ Àμö¿¿¡ ³ÖÀ» ¼öµµ ÀÖ´Ù.
string medal = rank == 1 ? "±Ý¸Þ´Þ" : (rank == 2 ? "Àº¸Þ´Þ":"µ¿¸Þ´Þ");
Console.WriteLine(rank == 1 ? "±Ý¸Þ´Þ" : (rank == 2 ? "Àº¸Þ´Þ" : "µ¿¸Þ´Þ"));
°¡´ÉÀº ÇÏÁö¸¸ ÁßøµÈ ±¸¹®ÀÇ °¡µ¶¼ºÀÌ ¶³¾îÁö°í Äڵ带 È®ÀåÇϱ⵵ ¾î·Æ´Ù. ¸¸¾à 4µî ÀÌÇÏ´Â Âü°¡»óÀ» ÁÖ±â·Î ÇÑ´Ù¸é ´Ù½Ã ÇÑ ¹ø ´õ ÁßøÇØ¾ß Çϸç ÄÚµå´Â ´õ Àб⠾î·Á¿öÁø´Ù. C#Àº ÀÌ·± ´ÙÁß ¼±ÅÃÀ» À§ÇØ switch Ç¥Çö½ÄÀ» µµÀÔÇß´Ù.
º¯¼ö switch {
°ª1 => °á°ú1,
°ª2 => °á°ú2,
...
_ => ±×¿ÜÀÇ °æ¿ì
}
°úµµÇÑ Å°¿öµå³ª ºí·Ï¾øÀÌ ²À ÇÊ¿äÇÑ ³»¿ë¸¸À¸·Î Á÷°üÀûÀÎ ¼±ÅÃÀÌ °¡´ÉÇÏ´Ù. ÀÌ ±¸¹®À¸·Î Âü°¡»ó±îÁö Æ÷ÇÔÇÑ ¿¹Á¦¸¦ ¸¸µé¾î º¸ÀÚ. ÃÖ±Ù¿¡ Ãß°¡µÈ ¹®¹ýÀÌ¶ó ¿¹Àü ÄÄÆÄÀÏ·¯¿¡¼ ¿¡·¯°¡ ¹ß»ýÇÒ ¼öµµ ÀÖ´Ù. ¼³Á¤ÀÇ ºôµå/°í±Þ ÆäÀÌÁö¿¡¼ ¾ð¾î ¹öÀüÀ» C# 8.0ÀÌ»óÀ¸·Î Á¶Á¤ÇØ¾ß ÇÑ´Ù.
switchexp |
½ÇÇà°á°ú |
using System;
class CSTest { static void Main() { int rank = 2; string medal = rank switch { 1 => "±Ý¸Þ´Þ", 2 => "Àº¸Þ´Þ", 3 => "µ¿¸Þ´Þ", _ => "Âü°¡»ó" }; Console.WriteLine(medal); } } |
Àº¸Þ´Þ |
rank °ª¿¡ µû¶ó ´ëÀÀµÇ´Â ¸Þ´ÞÀ» ¹Ù·Î ¾Ë¾Æº¼ ¼ö ÀÖ°í Äڵ带 È®ÀåÇϱ⵵ Æí¸®ÇÏ´Ù. °Ô´Ù°¡ if else¿Í´Â ´Þ¸® ¹®ÀåÀÌ ¾Æ´Ñ ½ÄÀÌ¾î¼ medal Áß°£ º¯¼ö ¾øÀÌ WriteLineÀÇ Àμö¿¿¡ ¹Ù·Î ÀûÀ» ¼ö ÀÖ´Ù.
Console.WriteLine(rank switch { 1 => "±Ý¸Þ´Þ", 2 => "Àº¸Þ´Þ", 3 => "µ¿¸Þ´Þ", _ => "Âü°¡»ó" });
Á¶°Ç ¿¬»êÀÚ´Â ³í¸®Çü¿¡ ´ëÇØ µÑ Áß Çϳª¸¦ °í¸£´Âµ¥ ºñÇØ switch Ç¥Çö½ÄÀº ÀÓÀÇ Å¸ÀÔ¿¡ ´ëÇØ ¿©·¯ °³ Áß Çϳª¸¦ °í¸¥´Ù. bMale switch { true => "³²ÀÚ", false => "¿©ÀÚ" } ½ÄÀ¸·Î Ç¥ÇöÇÒ ¼öµµ ÀÖ¾î switch Ç¥Çö½ÄÀÌ Á¶°Ç ¿¬»êÀÚ¸¦ Æ÷°ýÇÑ´Ù.
Á¶°Ç ¿¬»êÀÚ´Â ¿ø·¡ °ªÀ» ¸®ÅÏÇÏÁö¸¸ 7.2 ¹öÀüºÎÅÍ´Â ref Å°¿öµå¸¦ »ç¿ëÇÏ¿© ÂüÁ¶¸¦ ¸®ÅÏÇÒ ¼öµµ ÀÖ´Ù. Á¶°Ç¿¡ µû¶ó º¯¼ö³ª ¹è¿ÀÇ ¿ä¼Ò¸¦ ¼±ÅÃÇÒ ¼ö ÀÖÀ¸¸ç ÂüÁ¶´Â Áº¯°ªÀÌ¾î¼ º¯°æÇÒ ¼öµµ ÀÖ´Ù.
switchref |
½ÇÇà°á°ú |
using System;
class CSTest { public static void Main() { int a = 1; int b = 2;
Console.WriteLine($"a = {a}, b = {b}"); ref int r = ref (a > b ? ref a : ref b); r = 1234; Console.WriteLine($"a = {a}, b = {b}"); } } |
a = 1, b = 2 a = 1, b = 1234 |
µÑ Áß Å« Á¤¼ö¸¦ ã¾Æ Á¤¼öÇü ÂüÁ¶ r¿¡ ´ëÀÔÇÑ´Ù. rÀº ´õ Å« ¼öÀÇ º°¸íÀÌ¾î¼ r¿¡ °ªÀ» ´ëÀÔÇϸé Á¶°Ç ¿¬»êÀÚ°¡ ãÀº º¯¼öÀÇ °ªÀÌ ¹Ù²ï´Ù.