Do While을 사용하여 이점을 찾고 있는데, 대부분의 블로그 및 자습서에서는 요구 사항에 따라 다르다고 말합니다. Do not While의 장점은 무엇입니까?Do While PHP를 사용할 때의 이점은 무엇입니까
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
Do While을 사용하여 이점을 찾고 있는데, 대부분의 블로그 및 자습서에서는 요구 사항에 따라 다르다고 말합니다. Do not While의 장점은 무엇입니까?Do While PHP를 사용할 때의 이점은 무엇입니까
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
DO가 조건이 첫 번째 실행
후 체크로 항상 한 번 실행되지만 어디 조건이 일치하는 경우 먼저 체크로 음주에서만 실행하는 동안
주를 루프 내부의 명령문은 최소한 한 번만 실행됩니다. 대부분의 다른 구문에서는 절대로 실행되지 않을 수도 있습니다.
do { >>command<< } while()
< - 명령이 exectued됩니다 한 번 이상
while() { >>command<< }
< - 조건이
사실이지만 어떤 이점이 존재하지 않는 경우는 명령 만 실행됩니다. while
은 프리 컨디셔닝 된 루프이고, do..while
은 포스트 컨디셔닝 된 루프입니다. 즉, while
에서 반복 전에 조건을 검사하고 반복 후 do..while
에서 조건을 검사합니다.
따라서, do..while
루프 본문에 적어도 한 번 실행됩니다 - 그래서 당신이 뭔가에 의해 반복하는 경우가 제로 반복을 할 수있는, 사용할 수 없습니다 (예를 들어, 데이터베이스에서 선택의 행 카운트) .
으로 인해 어떤 프로그램도 if
과 while
으로 만 쓸 수 있습니다. 따라서 일반적으로 do..while
성명서는 필요 없습니다. 항상 while
으로 바꿀 수 있습니다.
진술이 무엇이든 관계없이 한 번 실행해야하는 모든 상황이 {}없이 달성 될 수 있다고 생각하는 이유는 무엇입니까? –
예, 무엇이 문제입니까? 아니면 무슨 뜻이야? –
내 말은 실제로 필요한 경우에 {{}을 수행하는 실제적인 경우입니까? 요즘에는 실제 코드에서는 거의 볼 수 없습니다. do {}를 사용하지 않고 적합하게 만드는 것이 아니라 그것을 사용하는 것이 유리한가요? –
for
, while
및 do-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는 매우 녹슨 다음과 같이 구현입니다.
재미 있습니다. 오늘은 do while 루프가 필요할 때였습니다. 이런 식이었습니다. 숫자를 생성하고 싶었지만 테스트를 통과해야했습니다. 당신이 볼 수 있듯이, 하나의 선 루프 밖에서 한 번 내부에 한 번, 반복
$num = generateRandomNumber();
while (!numberMeetsRequirements($num)) {
$num = generateRandomNumber();
}
: while 루프와
는 다음과 같이 보일 것입니다.이 특정 예에서, 당신은 DO-while 루프를 사용하여이 문제를 방지 할 수 있습니다
do {
$num = generateRandomNumber();
} while (!numberMeetsRequirements($num));
그러나 이미 다른 이들처럼
말했다 : 그것은 정말 당신이 무엇을하고 있는지에 따라 달라집니다. 위의 코드는 예제 일뿐입니다.
세 가지 루프 구문 모두 동일한 작업을 수행 할 수 있습니다. 장점은 정확히 무엇을하고 싶은지에 따라 그 중 하나가 다른 것보다 더 읽기 쉬운 ("자연스러운") 코드가됩니다. – Jon
이점은 'do/while'내의 코드는 항상 적어도 한 번 (한 번 이상) 실행된다는 것입니다. 'while'내에있는 코드와 비교하면 0 번 이상 실행됩니다. 상황에 따라 상황이 달라질 수 있습니다. –