1. While문과 Do..While문
while (조건) {
실행문;
}
- 조건이 참인 동안 실행문이 반복되어 실행된다.
- 반복을 벗어나기 위해서는 실행 문내에 조건을 변경하거나 break문이 필요하다.
- 조건에 변화가 없으면 무한 반복된다.
- 조건은 실행문이 반복될 때마다 반복해서 실행된다.
$a = 1; // 초기식
while ($a <= 10) { // 조건
echo(" {$a}<br> "); // 명령문
$a++; // 증감식
}
While뿐 아니라 do..while문이나 for문에서도 반복문의 네 가지 요소(초기식, 조건, 증감식, 명령문)는 항상 동
일하다.
2. For문
for (초기식; 조건; 증감식) {
실행문;
}
- 일반적으로 사용
- 조건이 참인 동안 실행문을 반복 실행한다.
- 초기식은 맨 처음 한 번만 실행된다.
- for문은 반복 횟수를 구체적으로 확인 가능함으로 반복문 중에 가장 가독성이 좋다.
잘못된 값 입력 시 사용하는 코드
if($num < 1 ) {
echo("
<script>
window.alert('1보다 큰값을 입력하세요');
history.go(-1);
</script>
");
exit;
}
3. Continue 문
- Continue문은 반복문 내에서 쓰이는 제어문
- 이런 제어문으로는 앞에서 살펴본 break문이 있는데, break문은 반복문을 완전히 빠져나오는 기능을 수행하는 반면 continue문은 현재 수행중인 반복을 종료하고 다음 반복으로 건너뛰는 기능을 담당
<?
for($a = 1; $a <= 10; $a++) {
if($a%2==0) continue;
echo(" {$a}<br> ");
}
?>
<?
$a = 1;
while ($a <=10) {
if($a%2==0){
$a++;
continue;
}
echo(" {$a}<br> ");
$a++;
}
show_source(__FILE__);
?>
while, for문 실습
예제 3-1. 0 보다 큰 값을 입력받아 1에서 입력 값까지의 합을 출력한다.
3-1.html
<html>
<head>
<title>3-1.html 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
</head>
<form method="post" action="3-1.php">
1보다 큰 값을 입력하세요 : <input type="text" name="num"><br>
<input type="submit" name="확인" value="확인">
<input type="reset" name="취소" value="취소"><br>
</form>
<hr>
<? show_source(__FILE__); ?>
</html>
while 문 3-1.php
<?
$num = $_POST["num"];
$sum = 0; // 누적 변수, 1..$num 까지 값을 누적한다.
$a = 1 ; // 초기식
if($num > 1) {
while($a <= $num) { // 조건, $a가 $num보다 커지면 반복을 종료한다.
$sum = $sum + $a;
echo("\$a: {$a}, \$sum: {$sum}<br>");
$a++; // 증감식
}
echo("<hr>");
echo("1에서 {$num}까지의 합은 {$sum}입니다.");
}
else echo("입력 값이 올바르지 않습니다.");
echo("<hr>");
show_source(__FILE__);
?>
예제 3-1 for문
3-1f.php
<?
$num = $_POST["num"];
if($num < 1 ) {
echo("
<script>
window.alert('1보다 큰값을 입력하세요');
history.go(-1);
</script>
");
exit;
}
$sum = 0;
for($a = 1; $a <= $num; $a++){
$sum = $sum + $a;
echo("\$a: {$a}, \$sum: {$sum}<br>");
}
echo("<hr>");
echo("1에서 {$num}까지의 합은 {$sum}입니다.");
echo("<hr>");
show_source(__FILE__);
?>
예제 3-2. 2~9 까지의 숫자를 입력받아 구구단을 출력하는 프로그램을 작성한다.
3-2f.html
<html>
<head>
<title>3-2f.html 구구단 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
</head>
<form method="post" action="3-2f.php">
출력하고자 하는 단을 입력 하세요 : <input type="text" name="gu"><br>
<input type="submit" name="확인" value="확인">
<input type="reset" name="취소" value="취소"><br>
</form>
</html>
3-2f.php
<?
$gu = $_POST["gu"];
if(!($gu >= 2 && $gu <= 9)) {
echo("
<script>
window.alert('2에서 9사이에 값을 입력하세요');
history.go(-1);
</script>
");
exit;
}
for($i = 1;$i <= 9;$i++){
$s = $i * $gu;
echo("{$gu}x{$i}={$s}<br>");
}
?>
실습
실습 1. 0보다 큰 정수를 입력받아 입력받은 정수까지 홀수의 합과 짝수의 합을 각각 출력하는 프로그램을 작성한다.
* while문과 for문을 둘 다 사용해 작성 (두 번 출력하기)
3-ex01.html
<html>
<head>
<title>3-ex01.html 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
</head>
<form method="post" action="3-ex01.php">
0보다 큰 값을 입력하세요 : <input type="text" name="num"><br>
<input type="submit" name="확인" value="확인">
<input type="reset" name="취소" value="취소"><br>
</form>
<hr>
<? show_source(__FILE__); ?>
</html>
3-ex01.php
<?
$num = $_POST["num"];
if($num < 0 ) {
echo("
<script>
window.alert('0보다 큰값을 입력하세요');
history.go(-1);
</script>
");
exit;
}
$sum_odd = 0;
$sum_even = 0;
$i=1;
while($i <= $num) {
if($i % 2 == 0){
$sum_even += $i;
}
else {
$sum_odd += $i;
}
echo("\$i: {$i}, \$sum_odd: {$sum_odd}, \$sum_even: {$sum_even}<br>");
$i++;
}
echo("<hr>");
echo("while문<br>");
echo("0에서 {$num}까지 홀수합: {$sum_odd}, 짝수합: {$sum_even}");
echo("<hr>");
$sum_odd = 0;
$sum_even = 0;
for($a = 1; $a <= $num; $a++){
if($a % 2 == 0){
$sum_even += $a;
}
else{
$sum_odd += $a;
}
echo("\$i: {$i}, \$sum_odd: {$sum_odd}, \$sum_even: {$sum_even}<br>");
}
echo("<hr>");
echo("for문<br>");
echo("0에서 {$num}까지 홀수합: {$sum_odd}, 짝수합: {$sum_even}");
echo("<hr>");
show_source(__FILE__);
?>
실습2. 값을 입력받아 입력된 값이 소수인지 확인하는 프로그램을 작성한다.
* 소수란 : 약수가 1과 자신밖에 없는 수
* 소수 판별 방법
- 제수의 값을 2부터 시작해서 1씩 증가 하면서 피제수를 나눠서 나머지가 0이 될 때까지 수행한다.
- 나눠서 떨어졌을 때 제수와 피제수가 같으면 피제수는 소수이다.
pri.html
<html>
<head>
<title>pri.html 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
</head>
<form method="post" action="pri.php">
3이상인 값을 입력하세요 <br>
<input type="text" name="num">
<input type="submit" name="확인" value="확인"><br>
</form>
<hr>
<? show_source(__FILE__); ?>
</html>
pri.php
<?
$num = $_POST["num"];
if($num < 3 ) {
echo("
<script>
window.alert('3이상인 값을 입력하세요');
history.go(-1);
</script>
");
exit;
}
for($i = 2; $num % $i != 0; $i++){
}
if($num == $i)
echo("{$num}: 소수");
else
echo("{$num}: 합성수");
?>
<hr><p>
<? show_source(__FILE__); ?>
'PHP 공부 기록' 카테고리의 다른 글
(수정중) PHP 5 - 배열 (0) | 2021.11.23 |
---|---|
PHP 4 - 폼(Form) (0) | 2021.11.19 |
PHP 2 - 조건문 (IF, SWITCH) (0) | 2021.10.29 |
PHP 1 - 변수와 연산자 (0) | 2021.10.22 |
PHP 0 - 프로그램 사용해보기 (0) | 2021.10.22 |