2013-08-16 3 views
0

Do While을 사용하여 이점을 찾고 있는데, 대부분의 블로그 및 자습서에서는 요구 사항에 따라 다르다고 말합니다. Do not While의 장점은 무엇입니까?Do While PHP를 사용할 때의 이점은 무엇입니까

<?php 
$i = 0; 
do { 
    echo $i; 
} while ($i > 0); 
?> 
+0

세 가지 루프 구문 모두 동일한 작업을 수행 할 수 있습니다. 장점은 정확히 무엇을하고 싶은지에 따라 그 중 하나가 다른 것보다 더 읽기 쉬운 ("자연스러운") 코드가됩니다. – Jon

+0

이점은 'do/while'내의 코드는 항상 적어도 한 번 (한 번 이상) 실행된다는 것입니다. 'while'내에있는 코드와 비교하면 0 번 이상 실행됩니다. 상황에 따라 상황이 달라질 수 있습니다. –

답변

0

DO가 조건이 첫 번째 실행

후 체크로 항상 한 번 실행되지만 어디 조건이 일치하는 경우 먼저 체크로 음주에서만 실행하는 동안

0

주를 루프 내부의 명령문은 최소한 한 번만 실행됩니다. 대부분의 다른 구문에서는 절대로 실행되지 않을 수도 있습니다.

0

do { >>command<< } while() < - 명령이 exectued됩니다 한 번 이상

while() { >>command<< } < - 조건이

2

사실이지만 어떤 이점이 존재하지 않는 경우는 명령 만 실행됩니다. while은 프리 컨디셔닝 된 루프이고, do..while은 포스트 컨디셔닝 된 루프입니다. 즉, while에서 반복 전에 조건을 검사하고 반복 후 do..while에서 조건을 검사합니다.

따라서, do..while 루프 본문에 적어도 한 번 실행됩니다 - 그래서 당신이 뭔가에 의해 반복하는 경우가 제로 반복을 할 수있는, 사용할 수 없습니다 (예를 들어, 데이터베이스에서 선택의 행 카운트) .

으로 인해 어떤 프로그램도 ifwhile으로 만 쓸 수 있습니다. 따라서 일반적으로 do..while 성명서는 필요 없습니다. 항상 while으로 바꿀 수 있습니다.

+0

진술이 무엇이든 관계없이 한 번 실행해야하는 모든 상황이 {}없이 달성 될 수 있다고 생각하는 이유는 무엇입니까? –

+0

예, 무엇이 문제입니까? 아니면 무슨 뜻이야? –

+0

내 말은 실제로 필요한 경우에 {{}을 수행하는 실제적인 경우입니까? 요즘에는 실제 코드에서는 거의 볼 수 없습니다. do {}를 사용하지 않고 적합하게 만드는 것이 아니라 그것을 사용하는 것이 유리한가요? –

0

for, whiledo-while 루프를 서로 바꾸어 사용할 수있는 알고리즘을 구현할 수 있습니다. 그러나 논리 흐름을 따라하면 다른 루프보다 한 루프를 사용하게됩니다.

do-while 루프를 사용할 때의 가장 좋은 예는 (로직 흐름에 따라) 버블 정렬을 구현하는 것입니다. 알고리즘에 대한 설명은 here이며 배열을 한 번 이상 반복해야한다는 것을 알 수 있습니다 (버블 정렬을위한 최선의 사례는 O(n)입니다. 여기서 n은 배열의 길이입니다). 알려 DO 구문 오류가있는 경우

$arr = array(10, 5, 6, 1, 3, 2, 7, 8, 9, 4); 
$arr_len = 10; 
$swapped; 

do { 
    $swapped = false; 

    for ($i = 0; i < ($arr_len - 1); $i++) { 
    if ($arr[ i ] > $arr[ i + 1 ]) { 
     $temp = $arr[ i ]; 

     $arr[ i ] = $arr[ i + 1]; 
     $arr[ i + 1 ] = $temp; 

     $swapped = true; 
    } 
    } 
} while ($swapped == true); 

내 PHP는 매우 녹슨 다음과 같이 구현입니다.

2

재미 있습니다. 오늘은 do while 루프가 필요할 때였습니다. 이런 식이었습니다. 숫자를 생성하고 싶었지만 테스트를 통과해야했습니다. 당신이 볼 수 있듯이, 하나의 선 루프 밖에서 한 번 내부에 한 번, 반복

$num = generateRandomNumber(); 
while (!numberMeetsRequirements($num)) { 
    $num = generateRandomNumber(); 
} 

: while 루프와

는 다음과 같이 보일 것입니다.이 특정 예에서, 당신은 DO-while 루프를 사용하여이 문제를 방지 할 수 있습니다

do { 
    $num = generateRandomNumber(); 
} while (!numberMeetsRequirements($num)); 

그러나 이미 다른 이들처럼

말했다 : 그것은 정말 당신이 무엇을하고 있는지에 따라 달라집니다. 위의 코드는 예제 일뿐입니다.

관련 문제