검수요청.png검수요청.png

"Do while"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
2번째 줄: 2번째 줄:
  
 
==개요==
 
==개요==
[[while]]문과 마찬가지로 제어 변수가 없고 반복 횟수가 가변적이지만 조건을 점검하는 시기가 다르다. while문은 루프로 들어가기 전에 조건을 점검하지만 do~while문은 일단 명령을 실행한 후 루프 계속 여부를 점검한다. 그래서 while문은 조건에 따라 한 번도 실행되지 않을 수도 있지만 do~while문은 최소한 한 번은 실행된다는 차이점이 있다. 요약하자면 while문은 선평가 후실행문이며 do~while문은 선실행 후평가문이다. 즉, do~while 문은 문의 고정된 블록을 무한정 실행하는 데 사용한다. do While ... loop는 해당 조건을 평가하고 조건이 참(true)일 경우 그 뒤에 나오는 문을 평가한다. 이 작업이 끝나면 다시 조건을 평가하고 조건이 참(true)일 경우 문을 다시 평가한다. 조건이 거짓(false)일 때까지 이 과정을 계속 반복한다.
+
[[while]]문과 마찬가지로 제어 변수가 없고 반복 횟수가 가변적이지만 조건을 점검하는 시기가 다르다. while문은 루프로 들어가기 전에 조건을 점검하지만 do~while문은 일단 명령을 실행한 후 루프 계속 여부를 점검한다. 그래서 while문은 조건에 따라 한 번도 실행되지 않을 수도 있지만 do~while문은 최소한 한 번은 실행된다는 차이점이 있다. 요약하자면 while문은 선평가 후실행문이며 do~while문은 선실행 후평가문이다. 즉, do~while 문은 문의 고정된 블록을 무한정 실행하는 데 사용한다. do While ... loop는 해당 조건을 평가하고 조건이 참(true)일 경우 그 뒤에 나오는 문을 평가한다. 이 작업이 끝나면 다시 조건을 평가하고 조건이 참(true)일 경우 문을 다시 평가한다. 조건이 거짓(false)일 때까지 이 과정을 계속 반복한다.<ref name=몽키>몽키몽키, 〈[https://m.blog.naver.com/cache798/130004441185, 반복문(while, do~while, for) 비교 및 차이 개념잡기]〉, 《네이버블로그》, 2006-05-16</ref>
  
 
==부연설명==
 
==부연설명==
초기식을 먼저 실행하고 루프로 진입하며 매 명령을 실행할 때마다 증감식을 실행하면 [[while]]문으로도 [[for]]문과 똑같은 구조를 만들 수 있으며 완전히 같지는 않아서 루프 내부에서 [[continue]]명령을 사용할 때의 효과가 약간 달라진다. 반대로 while (조건) 명령; 도 for (;조건;) 명령; 형식으로 변환할 수 있다. 제어문에 따른 실행 속도나 코드의 크기는 거의 차이가 없으므로 실행 속도는 제어문을 선택하는 기준이 아니다. 하지만 어느 쪽이 더 효율적이고 코드의 가독성이 높은지, 부작용은 없는지를 비교해 보면 세가지 [[반복문]] 중 가장 적절한 것이 있을 것이다. 세가지 제어 구조의 특징을 잘 파악해야 상황에 가장 적절한 반복문을 선택할 수 있다. 1~100까지 숫자의 합계를 구하는 루프는 for문이 가장 적당하다. 반복 범위가 미리 정해져 있고 이 값이 루프내에서 사용되어야 하므로 제어 변수를 쓰는 것이 효율적이며 코드도 훨씬 더 짧고 명료하다. 예를 들어, 숫자 맞추기 게임에서는 사용자가 입력한 숫자와 컴퓨터가 생각한 숫자를 비교하기 위해 do~while 문을 사용한다. 이 경우 왜 do~while 루프가 가장 적절한가 하면 일단 사용자로부터 값을 입력받아야만 루프를 탈출할 것인지 계속할 것인지를 결정할 수 있기 때문이다. 즉, 조건을 점검하기 전에 일단 사용자로부터의 입력을 최소한 한 번은 먼저 받아야만 하는 것이다.  
+
초기식을 먼저 실행하고 루프로 진입하며 매 명령을 실행할 때마다 증감식을 실행하면 [[while]]문으로도 [[for]]문과 똑같은 구조를 만들 수 있으며 완전히 같지는 않아서 루프 내부에서 [[continue]]명령을 사용할 때의 효과가 약간 달라진다. 반대로 while (조건) 명령; 도 for (;조건;) 명령; 형식으로 변환할 수 있다. 제어문에 따른 실행 속도나 코드의 크기는 거의 차이가 없으므로 실행 속도는 제어문을 선택하는 기준이 아니다. 하지만 어느 쪽이 더 효율적이고 코드의 가독성이 높은지, 부작용은 없는지를 비교해 보면 세가지 [[반복문]] 중 가장 적절한 것이 있을 것이다. 세가지 제어 구조의 특징을 잘 파악해야 상황에 가장 적절한 반복문을 선택할 수 있다. 1~100까지 숫자의 합계를 구하는 루프는 for문이 가장 적당하다. 반복 범위가 미리 정해져 있고 이 값이 루프내에서 사용되어야 하므로 제어 변수를 쓰는 것이 효율적이며 코드도 훨씬 더 짧고 명료하다. 예를 들어, 숫자 맞추기 게임에서는 사용자가 입력한 숫자와 컴퓨터가 생각한 숫자를 비교하기 위해 do~while 문을 사용한다. 이 경우 왜 do~while 루프가 가장 적절한가 하면 일단 사용자로부터 값을 입력받아야만 루프를 탈출할 것인지 계속할 것인지를 결정할 수 있기 때문이다. 즉, 조건을 점검하기 전에 일단 사용자로부터의 입력을 최소한 한 번은 먼저 받아야만 하는 것이다. <ref name=몽키></ref>
  
  

2021년 7월 30일 (금) 10:00 판

Do-while 루프는 대부분의 컴퓨터 프로그래밍 언어에서 주어진 불린 자료형 조건을 기반으로 코드가 한 번 실행할 수 있게 하는 제어 흐름문이다. 대부분의 언어와 달리 포트란의 do 루프(roop)는 실제로는 for 루프와 같다.

개요

while문과 마찬가지로 제어 변수가 없고 반복 횟수가 가변적이지만 조건을 점검하는 시기가 다르다. while문은 루프로 들어가기 전에 조건을 점검하지만 do~while문은 일단 명령을 실행한 후 루프 계속 여부를 점검한다. 그래서 while문은 조건에 따라 한 번도 실행되지 않을 수도 있지만 do~while문은 최소한 한 번은 실행된다는 차이점이 있다. 요약하자면 while문은 선평가 후실행문이며 do~while문은 선실행 후평가문이다. 즉, do~while 문은 문의 고정된 블록을 무한정 실행하는 데 사용한다. do While ... loop는 해당 조건을 평가하고 조건이 참(true)일 경우 그 뒤에 나오는 문을 평가한다. 이 작업이 끝나면 다시 조건을 평가하고 조건이 참(true)일 경우 문을 다시 평가한다. 조건이 거짓(false)일 때까지 이 과정을 계속 반복한다.[1]

부연설명

초기식을 먼저 실행하고 루프로 진입하며 매 명령을 실행할 때마다 증감식을 실행하면 while문으로도 for문과 똑같은 구조를 만들 수 있으며 완전히 같지는 않아서 루프 내부에서 continue명령을 사용할 때의 효과가 약간 달라진다. 반대로 while (조건) 명령; 도 for (;조건;) 명령; 형식으로 변환할 수 있다. 제어문에 따른 실행 속도나 코드의 크기는 거의 차이가 없으므로 실행 속도는 제어문을 선택하는 기준이 아니다. 하지만 어느 쪽이 더 효율적이고 코드의 가독성이 높은지, 부작용은 없는지를 비교해 보면 세가지 반복문 중 가장 적절한 것이 있을 것이다. 세가지 제어 구조의 특징을 잘 파악해야 상황에 가장 적절한 반복문을 선택할 수 있다. 1~100까지 숫자의 합계를 구하는 루프는 for문이 가장 적당하다. 반복 범위가 미리 정해져 있고 이 값이 루프내에서 사용되어야 하므로 제어 변수를 쓰는 것이 효율적이며 코드도 훨씬 더 짧고 명료하다. 예를 들어, 숫자 맞추기 게임에서는 사용자가 입력한 숫자와 컴퓨터가 생각한 숫자를 비교하기 위해 do~while 문을 사용한다. 이 경우 왜 do~while 루프가 가장 적절한가 하면 일단 사용자로부터 값을 입력받아야만 루프를 탈출할 것인지 계속할 것인지를 결정할 수 있기 때문이다. 즉, 조건을 점검하기 전에 일단 사용자로부터의 입력을 최소한 한 번은 먼저 받아야만 하는 것이다. [1]


각주

  1. 1.0 1.1 몽키몽키, 〈반복문(while, do~while, for) 비교 및 차이 개념잡기〉, 《네이버블로그》, 2006-05-16

참고자료

같이 보기

  검수요청.png검수요청.png 이 Do while 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.