현실 세계는 선형적이고 조립 라인 형태이기 때문에 매우 무력합니다.
오늘이 지나면 내일이 있고, 내일이 지나면 모레가 있을 것이다.
매일매일 구체적이고, 그 이상은 아닙니다.
일상적인 관점에서 보면, 삶은 정말 매끄럽고 유선형입니다. 그러나 일하는 동안은 아무것도 아닙니다.
끝없는 루프에 갇힌 것 같습니다.
시간을 매시간으로 줄이면 일하는 생활은 거의
시간을 무시하면 낮에도 일하고, 일하고, 일하고 등등을 하게 될 것이고...주기는 계속됩니다.
시간을 추가하더라도 12시, 18시 30분 퇴근을 제외하고는 매시간 근무사이클이 진행되는 것 같다.
루프는 실제로 일종의 반복으로, 지정된 조건이 충족될 때 어떤 작업을 반복적으로 수행합니다. 예를 들어 시간이 18시 30분에 도달하지 않는 한 우리는 반복적으로 작업을 진행해 왔습니다.
프로그래밍 언어는 실제 생활을 시뮬레이션합니다. 무언가에 대해 혼란스럽다면 실제 생활에서 사례를 찾아보세요.
프로그래밍 언어에도 루프(loop)라는 개념이 있는데, 이는 지정된 조건이 충족되면 코드의 일부를 반복적으로 실행할 수도 있습니다. 우리는 이렇게 반복적으로 실행되는 코드를 변환문이라고 부릅니다.
루프 문을 사용하면 문이나 문 그룹을 여러 번 실행할 수 있습니다.
루프 문은 지정된 조건이 true인 경우 반복적으로 실행되는 코드입니다.
이 반복적인 과정을 그림으로 설명하면 다음과 같습니다.
위의 세 가지 유형의 반복에 대응하여 Rust 언어에는 루프를 나타내는 세 가지 명령문도 있습니다 .
세 문 모두 루프 기능을 구현할 수 있지만 초점이 다릅니다.
위의 설명에서 루프가 종료될 수 있는지 여부에 따라 루프를 두 가지 주요 범주로 나눕니다.
for 문은 특정 횟수만큼 반복되는 루프입니다.
for 문은 지정된 횟수만큼 코드 블록을 실행하는 데 사용됩니다.
다른 언어와 다를 수 있습니다. Rust의 for 루프는 for..in 형식만 가지며, 이는 배열, 벡터 등과 같은 고정된 값 집합을 반복하는 데 자주 사용됩니다.
다음 코드는 for...in 루프를 사용하여 1에서 11(11 제외) 사이의 숫자를 반복적으로 출력합니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
while 문은 조건이 참인 동안 반복적으로 실행되는 루프입니다.
while 루프는 각 반복 실행 전에 조건이 충족되는지 여부를 먼저 확인합니다. 조건이 충족되면 실행되고, 충족되지 않으면 종료됩니다.
조건은 표현식이고 반환된 결과는 부울 유형으로 변환됩니다. 조건이 true를 반환하는 한 루프는 계속 실행됩니다.
다음 코드는 while 루프를 사용하여 위 코드를 다시 작성하고 1에서 11 사이의 숫자(11 제외)를 반복적으로 출력합니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
마지막 외부 루프 x 값은 11입니다. x가 11로 증가하면 x < 11 조건이 더 이상 충족되지 않기 때문입니다.
loop 문은 무한 루프를 나타냅니다. 루프 조건과 루프 시간이 없습니다. 이는 영구 동작 기계입니다.
다음 명령문에서는 루프를 사용하여 1부터 무한대까지의 숫자를 출력합니다.
실제로는 불가능하다
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
이는 예상치 못한 일이 발생하지 않는 한 멈추지 않는 끝없는 순환입니다. 프로그램을 수동으로 종료해야 합니다. 이때 Ctrl + C를 눌러 프로그램을 종료할 수 있습니다.
참고: 프로그램이 무한 루프에 들어가면 CTRL + C를 눌러 프로그램을 종료할 수 있습니다.
좋습니다. 세 가지 주요 루프 문을 배웠습니다. 이를 사용하는 것에 대해 어떻게 생각하시나요? ? ?
일상적인 프로그래밍에서 이런 요청이 있는지는 모르겠습니다. 액션문 블록에서 루프를 종료할 수 있으면 좋을 것 같습니다.
이 요청에 대해 언어 개발자들은 일찍부터 이것을 생각해서 break 문을 생각해 냈습니다.
즉, break 문은 action 문 블록의 루프 문을 종료하는 것처럼 보입니다.
break 문의 구문 형식은 다음과 같습니다.
매우 간결하고 엉성하지 않습니다.
이를 시험해 보기 위해 break 문을 사용하여 루프를 변환하고 x가 11보다 클 때 루프를 종료합니다.
즉 루프 루프를 사용하여 while 루프를 구현하는 것입니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
break 문은 우리에게 달콤함을 선사합니다. 때로는 break 문처럼 전체 루프를 직접 종료하지 않고 현재 루프만 종료하는 또 다른 키워드가 있는지 문득 궁금해집니다. 즉, 나머지 문은 실행되지 않고 다음 반복이 시작됩니다.
그 언어들을 만든 선배들은 자연스럽게 이런 생각을 갖고 있었기 때문에 continue 문을 만들었습니다.
간단히 말해서 continue 문은 나머지 문 실행을 중지하고 다음 루프로 직접 들어갑니다.
continue 문의 구문 형식은 다음과 같습니다.
아래 코드에서는 for 루프를 사용하여 1에서 11 사이의 숫자를 출력하지만 숫자 5는 건너뜁니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
12. Rust 듀플(tuple) (0) | 2024.11.15 |
---|---|
11. Rust 함수 fn (0) | 2024.11.15 |
9. Rust 조건부 판단 (0) | 2024.11.15 |
8. Rust 연산자 (0) | 2024.11.15 |
7. Rust 문자열 (0) | 2024.11.15 |