질문과 답변· ··조회 9,826
[re] 답변나갑니다......
2 : //1부터 10까지의 합계를 while 문을 이용해서
3 : $sum = 0 ;
4 : $number = 1 ;
5 : while ($number < 10 ) {
6 : $sum = $sum + $number ;
7 : $number = $number + 1 ;
8 : }
9 : echo "1부터 $number 까지의 합계 = $sum <br>";
while 문에 들어가는 가장 큰 $number 값은 9 가 되겠죠.
그럼 $sum 은 1 부터 9 까지의 합을 계산합니다.
결과는 45 가 나오죠.
근데 왜 echo 문에서 1 부터 9 까지 가 아니라 1 부터 10 일까요?
7번줄에 그 답이 있습니다. 위에서 설명했듯이 $number 값은 9 죠.
거기다 1 을 더하고 while 문이 끝났으니까 $number 는 10 이 되겠죠.
병목님이 에러수정하신다고 $number < 10 을 $number <= 10 으로
수정하셨는데요. 그럼 7번 줄은 없어져야 겠죠? 소스 다시 정리하면
$sum = 0;
$number = 1;
while ($number <= 10) {
$sum = $sum + $number;
}
echo "1부터 $number 까지의 합계 = $sum";
해결되셨나요? ^^
3 : $sum = 0 ;
4 : $number = 1 ;
5 : while ($number < 10 ) {
6 : $sum = $sum + $number ;
7 : $number = $number + 1 ;
8 : }
9 : echo "1부터 $number 까지의 합계 = $sum <br>";
while 문에 들어가는 가장 큰 $number 값은 9 가 되겠죠.
그럼 $sum 은 1 부터 9 까지의 합을 계산합니다.
결과는 45 가 나오죠.
근데 왜 echo 문에서 1 부터 9 까지 가 아니라 1 부터 10 일까요?
7번줄에 그 답이 있습니다. 위에서 설명했듯이 $number 값은 9 죠.
거기다 1 을 더하고 while 문이 끝났으니까 $number 는 10 이 되겠죠.
병목님이 에러수정하신다고 $number < 10 을 $number <= 10 으로
수정하셨는데요. 그럼 7번 줄은 없어져야 겠죠? 소스 다시 정리하면
$sum = 0;
$number = 1;
while ($number <= 10) {
$sum = $sum + $number;
}
echo "1부터 $number 까지의 합계 = $sum";
해결되셨나요? ^^
댓글 2
$number 가 증가하지 않으니 무한루프로 빠져버립니다.
7번은 그대로 두고,
9번 줄 위에, $number = $number -1;
이런 거 한 줄 집어 넣는 게 낫겠네요.
죄송합니다.
사소하다고 제대로 확인하지 못한 점. 죄송합니다.
소스를 수정한게 아니라 더 엉망을 만들었군요.^;;;;
재 수정 합니다... 죄송.. 꾸박.^^
<?
$sum = 0;
$number = 1;
while ($number <= 10) {
$sum = $sum + $number;
if($number==10) break;
$number++;
}
echo "1부터 $number 까지의 합계 = $sum";
?>