Notice
Recent Posts
Recent Comments
Link
스토리지
while문, switch문 중첩 시, break가 while을 종료하는 법 본문
class Program
{
static void Main(string[] args)
{
while (true)
{
Console.Write("과일 이름을 입력하세요 : ");
string name = Console.ReadLine();
Console.WriteLine("{0}을(를) 입력 하셨습니다.", name);
switch (name)
{
case "바나나":
Console.WriteLine("바나나는 파초과 파초속의 여러해살이 식물과 열매를 두루 일컫는 말이다. 바나나는 열대 아시아, 인도, 말레이시아 등지가 바나나의 원산지이지만, 현재의 주된 바나나 생산 지역은 인도, 브라질, 필리핀, 에콰도르 등이다.");
break;
case "수박":
Console.WriteLine("수박은 남아프리카 원산의 한해살이 덩굴식물, 또는 그 열매를 말한다. 서과 또는 수과라고도 한다. 열매의 속살은 식용하는데, 붉거나 노란색을 띠며, 달고, 씨가 있는 수박이 대부분이다.");
break;
case "종료":
Console.WriteLine("프로그램을 종료합니다.");
break;
default:
Console.WriteLine("{0}에 대한 정보가 부족합니다.", name);
break;
}
Console.WriteLine();
}
}
}
이 상황에서 case '종료' 일 때 상상되어지는 경우는 switch문 탈출 -> while문 탈출 -> 프로그램 종료이다.
하지만 break는 가장 가까이에 있는 switch문만 벗어나고 계속해서 while문을 반복하게 된다.
몇가지 방법을 생각해보았다.
1. bool 변수 추가
- 종료를 판정하는 bool 변수를 추가하여 case '종료' 시에 bool값을 true로 변경 후 switch문 밖에 bool이 참일 시, break를 걸어주어서 while문을 탈출할 수 있다.
2. System.Diagnostics.Process.GetCurrentProcess().Kill();
- 프로세스 자체를 죽이는 기법. 이 분기에 접어들면 무조건 프로그램이 종료된다고 판단될 때는 써도된다.
'Unity > 문제해결' 카테고리의 다른 글
[4.18] 게임오브젝트에 중력이 제대로 적용이 안되는 문제 (해결) (0) | 2021.04.18 |
---|---|
(문제) 씬에서 보이던게 게임뷰에서 안보이는 문제 (0) | 2021.04.13 |
json으로 직렬화할 때 문제점 (0) | 2021.03.26 |
[3.25] 수정중인 코드 (0) | 2021.03.25 |
객체를 출력할 때 하나하나 멤버를 안 호출하고 객체를 출력하기 (0) | 2021.03.16 |
Comments