-
C# 연습해보기, 무한 루프 그리고 제어문(break, continue, goto)프로그램/C# 2020. 1. 9. 10:33
무한 루프 그리고 제어문에 대해서 알아볼려고합니다.
무한 루프란 종료문을 만나지 못하고 계속해서 동작하는 것을 말합니다. 코딩 중 실수로 무한 루프가 발생하게 된다면, 반복문 내의 코드가 계속해서 반복 실행되므로 잘못하면 비정상적으로 프로그램이 종료될 수가 있습니다. 하지만 무한 루프는 단점만 있는 것이 아니라 장점도 있습니다. 그 장점에 대해서 알아보겠습니다.
무한 루프의 예시
while (true) // 조건식이 항상 true 이므로 무한 루프 발생. { // 실행될 코드 부분. }
예시를 보시면 조건식에 true 이므로 while 문 내에 있는 코드를 무한 반복해서 실행합니다.
이러한 무한 루프는 어디에 아니 어떻게 쓰일까요?
무한 루프 사용 예시
int sum = 0; while (true) { Console.Write("숫자를 입력해주세요. \n : ); string str = Console.ReadLine(); // 숫자 입력 if (str == "sum") // sum 을 입력하게 되면 무한 루프 종료 { break; } sum += int.Parse(str); // 문자열을 숫자로 변환 후 sum 에 더함 } Console.WriteLine("숫자 합 : " + sum); // 모두 더해진 값을 출력.
결과값
숫자를 입력해주세요. : 1 숫자를 입력해주세요. : 2 숫자를 입력해주세요. : 3 숫자를 입력해주세요. : 4 숫자를 입력해주세요. : 5 숫자 합 : 15 계속하려면 아무 키나 누르십시오...
살펴보자면 while 문의 조건식이 항상 true 이므로 무한 루프를 빠져나오기 위한 조건을 받을 떄까지 반복해서 숫자를 입력 및 합이 더해지다가 'sum' 이라는 빠져나오기 위한 조건식이 입력되고 루프가 멈추며 지금까지 적은 수의 합이 출력되는 겁니다.
두번째 break 에 대해서 설명드리겠습니다.
break 는 전에 보았던 switch 문에서 빠져나가기 위한 break 나 방금 전 무한 루프에서 빠져나가기 위한 break 는 같은 그저 '빠져나가다 / 탈출하다' 라는 의미를 지니고 있습니다.
break 를 사용하여 빠져나가는 예시
int number = 0; while (num < 10) { if (num == 5) { break; // num 의 숫자가 5가 되면 반복문을 빠져나간다. } Console.WriteLine("숫자 : " + num); num++; }
결과값
숫자 : 0 숫자 : 1 숫자 : 2 숫자 : 3 숫자 : 4 계속하려면 아무 키나 누르십시오...
이러한 결과값이 왜 나오는지 설명드리자면 while 문의 조건식에는 10이 num 보다 크면 true 로 특정 값이 될때까지 계속해서 반복문 내 코드를 실행합니다만 반복문 내 코드에 있는 if 문의 조건식에 충족 시 break 로 의해 무한 루프를 빠져나가게 할 수 있는 것이죠.
세번째 continue 에 대해서 설명드리겠습니다.
continue 는 조건식을 검사하는 부분으로 다시 넘어가 반복을 계속 수행하는 작업을 합니다. 즉, continue 를 만나게 되면 다시 조건식 검사하는 부분으로 넘어간다는 말입니다. 간단하게 말해서 쉬고 반복을 한다는 겁니다.
continue 를 사용한 예시
for (int i = 1; i <= 20; i++) { if (i % 2 == 0) { continue; } Console.WriteLine("i : " + i); }
결과값
i : 1 i : 3 i : 5 ... i : 15 i : 17 i : 19 계속하려면 아무 키나 누르십시오...
이러한 결과값이 나오게됩니다, 왜냐? for 문의 i 값이 증가되고 if 문 조건식에서 (i % 2 == 0) 나머지가 0이라면 즉, 짝수라면 if 문 내의 continue 를 만나 쉬고 다시 반복하게 되고, 만약 나머지가 1이라면 즉, 홀수 라면 Console 에 출력을 하게 됩니다.
네번째 goto 에 대해서 설명드리겠습니다.
goto 는 특정 레이블로 넘어간다라는 기능을 가지고 있습니다. 즉, 어디든지 문이라고 이해하시면 쉽겠네요.
goto 를 사용 형식 예시
goto 레이블; 레이블: // 실행할 코드
레이블이란 코드내 위치를 식별하기 위한 위치명이라고 생각하시면 됩니다.
goto 를 사용한 예시
int num = 0; while (true) { if (num == 10) { goto door; // num 이 10 일시 레이블 door 로 이동. } Console.WriteLine("숫자 : " + num); num++; } door: Console.WriteLine("문");
결과값
숫자 : 0 숫자 : 1 숫자 : 2 숫자 : 3 숫자 : 4 숫자 : 5 숫자 : 6 숫자 : 7 숫자 : 8 숫자 : 9 문 계속하려면 아무 키나 누르십시오...
이렇게 코드 내에 레이블을 지정해주고 그 위치로 이동하게 할 수 있는 기능입니다.
오늘은 무한 루프 그리고 제어문에 대해서 알아보았습니다.
반응형'프로그램 > C#' 카테고리의 다른 글
C# 연습해보기, 메소드와 메소드 오버로딩(Method, Method Overloading) (0) 2020.01.13 C# 연습해보기, 반복문(while, do, for, foreach) (0) 2020.01.07 C# 연습해보기, 조건문(if, else, switch) (0) 2020.01.07 C# 연습해보기, 연산자(Operators) (0) 2020.01.07 C# 연습해보기, 배열 알아보기 (0) 2020.01.07