|
【 제어구조 】
· 제어구조란 프로그램 흐름을 제어하는 프로그램 문장을 의미한다. 그리고 이를 제어문이라 한다.
· 제어문은 다음 크게 두 부류로 나뉘어 진다. (조건문,반복문)
1. 조건문의 종류
(1) IF 문
(2) SWITCH 문
2. 반복문의 종류
(1) FOR 문
(2) WHILE 문
(3) DO/WHILE 문
● IF문
▶ 기능 : 조건문 만들어 참과 거것을 판단하는 문장
▶ 설명 : 조건문의 조건식을 확인하여 관련 프로그램을 실행하고 종료한다.
▶ 기호 : 조건식에 쓰이는 비교 조건 기호
== : 같음
> : 보다 큼 ( 좌 기준으로 우 보다 크다. )
>= : 크거나 같음 ( 좌 기준으로 우 보다 크거나 같다. )
< : 보다 작음 ( 좌 기준으로 우 보다 작다. )
<= : 작거나 같다. ( 좌 기준으로 우 보다 작거나 같다. )
!= : 서로 같지 않다.
0. 조건식을 출력해본다.
1. (출력)
document.write( "조건식을 학습합니다." );
document.write(" <hr> ");
document.write( 1==1 ); // true
document.write( 1==2 ); // false
if ( 1 == 1 ) { // 괄호안의 내용물(결과값)이 참(true)이여서 실행합니다.
document.write(" 11 ");
} else { // 괄호안의 내용물(결과값)이 거짓(false)이여서 실행합니다.
document.write(" 22 ");
}
document.write( 1==1 && 2==2 );
document.write( 1==1 && 2==3 );
document.write( 1==1 || 2==3 );
document.write( 1==5 || 2==3 );
if( true ) {
document.write("333");
} else {
document.write("444");
}
1. 단일 조건식 설정 ( if ~ else )
( if문 예제 1 )
출력내용 : 영어 점수가 만점(100점)인지 아닌지를 출력한다.
var eng = 99;
if ( eng == 100 ) {
document.write("만점 입니다.");
} else { // else 부분은 조건식이 맞지 않을 경우 실행
document.write("만점이 아닙니다.");
}
( if문 예제 2 )
- 점수 60점 기준으로 합격 or 불합격 출력
- 합격의 경우부터 조건 세팅 (반대의 경우로도 세팅)
<script>
var score = 90;
if( score >= 60) {
document.write("합격");
} else {
document.write("불합격");
}
</script>
( if문 예제 3 )
- 출력내용 : 문자 또는 문자열을 비교하여 출력한다.
var gender = "M";
if ( gender == "M") {
document.write( "성별은 남성입니다." );
} else {
document.write( "성별은 여성입니다." );
}
var pat = "고양이";
if( pat == "고양이" ) {
document.write( "고양이를 키우고 계시군요." );
} else {
document.write( "고양이가 아니군요. 알겠습니다." );
}
2. 다중 조건식 설정 ( if ~ else if ~ else )
- 하나의 조건문에 여러 조건식을 설정한다.
- 여러조건을 설정할 수 있고 조건에 맞으면 실행하고 IF문을 종료한다.
( if문 예제 4 )
- 가격을 비교하여 고가의 물건을 출력한다.
var java_price = 250;
var html_price = 200;
if ( java_price > html_price ) {
document.write(" java책이 더 고가임 ");
} else if ( java_price < html_price ) {
document.write(" html책이 더 고가임 ");
} else {
document.write(" 두 책의 가격은 같습니다. ");
}
(풀어보기1)
- 점수를 0 ~ 100 사이로 받으려고 한다.
아래의 요구사항을 보고 세팅한다.
1. 점수가 100을 초과하면 "100을 초과했습니다." 라고 출력한다.
2. 점수가 0 미만이면 "음수 설정은 안됩니다." 라고 출력 한다.
3. 그 외 입력은 정상이므로 "정상입력" 이라고 출력 한다.
<script>
var score = 98;
(?)
</script>
(풀어보기2)
- 아래의 요구사항을 보고 세팅하여 출력한다.
1. 점수 80점 이상은 "우수" 이라고 출력
2. 점수 60점 이상은 "보통" 이라고 출력
3. 점수 60점 미만은 "미흡" 이라고 출력
(풀어보기3)
** 사원의 년차별 등급을 출격하려고 한다.
1. 사원명을 입력받는다. (prompt 사용)
2. 근무년수를 입력받는다. (prompt 사용)
3. 아래의 조건을 보고 출력결과와 같이 출력한다.
(등급조건)
- 15년 이상은 특급
- 10년 이상은 고급
- 6년 이상은 중급
- 5년 이하는 초급
(출력 결과) 홍길동 사원의 년차는 12년으로 고급입니다.
(풀어보기4)
※ 조건 2개를 하나의 조건식에 작성하는 예제
- 영어점수 국어점수 모두 60점이 넘어야 합격 아니면 불합격을 출력한다.
(풀어보기5)
※ 성별의 이니셜(M/F)을 입력 받아 남성/여성을 출력한다.
- 이외의 데이터가 넘어오는 경우는 "오류" 라고 출력한다.
<script>
var gender = prompt("성별을 입력해주세요( 남성:M , 여성:F )", "");
(?)
</script>
(풀어보기6)
※ prompt로 숫자를 입력받아 짝수 홀수를 출력하시오.
(풀어보기7)
var cat_price = 1000;
var my_money = prompt("마이 머니 입력",0);
if( cat_price > my_money ) {
document.write("은행 잔고가 부족하여 고양이를 사실 수 없습니다.");
} else if( cat_price < my_money ) {
document.write("현재 잔고로 고양이를 사실 수 있습니다.");
} else if( cat_price == my_money ) {
document.write("현재 잔고로 고양이를 사실 수 있습니다. <br> 그러나 잔고가 0이 됩니다.");
}
document.write("<hr>");
(풀어보기8)
/* 커피머신*/
// prompt창 : 1.맥심믹스 2.카누카푸치노 3.마일드
// 이외의 숫자 입력 시 자동 1번 선택
// prompt창 : 1.벤티 2.그란데 3. 톨
// 이외의 숫자 입력 시 자동 2번 선택
// prompt창 : 1.기본단맛 2.약간단맛 3.아주단맛
// 이외의 숫자 입력 시 자동 1번 선택
// 출력내용 : 카누카푸치노 벤티사이즈로 아주단맛을 선택했습니다.
(소스)
var coffee = prompt("1.맥심믹스 2.카누카푸치노 3.마일드",1);
if(coffee < 1 || coffee > 3) {
coffee = 1;
}
var size = prompt("1.벤티 2.그란데 3. 톨",2);
if(size != 1 && size != 2 && size != 3) {
size = 2;
}
var sweet = prompt("1.기본단맛 2.약간단맛 3.아주단맛",1);
if( sweet == 1 || sweet == 2 || sweet == 3 ) {
} else {
sweet = 1;
}
var coffee_value = "";
if( coffee == 1 ) {
coffee_value = "맥심믹스";
}
else if(coffee == 2) {
coffee_value = "카누카푸치노";
}
else {
coffee_value = "마일드";
}
var size_value = "";
if( size == 1 ) { size_value = "벤티"; }
else if( size == 2 ) { size_value = "그란데"; }
else { size_value = "톨"; }
var sweet_value = "";
if( sweet == 1 ) { sweet_value = "기본단맛"; }
else if( sweet == 2 ) { sweet_value = "약간단맛"; }
else { sweet_value = "아주단맛"; }
document.write( coffee_value );
document.write( " ");
document.write( size_value );
document.write( "사이즈로 ");
document.write( sweet_value );
document.write( "을 선택했습니다." );
※ 위 출력 내용을 document.write 하나로 만들어 출력하기
// 출력내용 : 카누카푸치노 벤티사이즈로 아주단맛을 선택했습니다.
● switch
- switch 괄호안의 설정 값과 case 설정 값들 중에 맞는 곳을 찾아 실행한다.
/*
switch(설정값) {
case "값1" : // 실행문
break;
case "값2" : // 실행문
break;
default : // 실행문
}
*/
예제1)
switch( 3 ) { // 내용물(조건식의 결과물)을 case들 중에 찾아서 실행하겠습니다.
case 1 : document.write("결과는 1이네");
break; // switch문을 닫는다.
case 2 : document.write("결과는 2이네");
break;
case 3 : document.write("결과는 3이네");
break;
}
switch( "java" ) {
case "html" : document.write("결과는 html임");
break;
case "java" : document.write("결과는 java임");
break;
case "oracle" : document.write("결과는 oracle임");
break;
default : document.write("모름~~~");
}
예제2)
var code=prompt("영어점수 입력","");
switch( code >= 60 ) {
case true : alert("합격");
break;
default : alert("불합격");
}
예제3)
switch( 5-3 ) { // 내용물(조건식의 결과물)을 case들 중에 찾아서 실행하겠습니다.
case 1 : document.write("결과는 1이네");
break; // switch문을 닫는다.
case 2 : document.write("결과는 2이네");
break;
case 3 : document.write("결과는 3이네");
break;
}
※ if문으로 바꾸어 본다.
var gender = "F";
switch( gender ) {
case "M" : document.write("남성입니다.");
break;
case "F" : document.write("여성입니다.");
break;
default : document.write("잘못된 값입니다.");
break;
}
var code = "b001";
var title = "";
switch ( code ) {
case "b001": title = "JAVA의 첫거름";
break;
case "b002": title = "JSP 시작하기";
break;
case "b003": title = "오라클 데이터베이스";
break;
default : title = "없는 코드 번호입니다.";
}
document.write( "해당 코드의 책은 " + title + "입니다. " );
(풀어보기1)
- 심부름게임 -
- 프롬프트 창으로 1번 ~ 5번까지 입력받아 해당 메세지를 출력한다.
1 : 500원 내기
2 : 1000원 내기
3 : 심부름 가기
4 : 2000원 내기
5 : 축 !! 돈 안내도 됨
이외의 값 입력 시 " 다시 시도해 주세요. "
● for문 - 반복문
▶ 기능 : 작성 명령문을 조건에 따라 반복 수행
(형식)
for ( 초기값; 비교조건; 증감조건 ) {
실행 내용
}
예제1) 다양한 세팅으로 별을 10개 출력한다.
for( var i=1; i<=10; i++) {
document.write("*");
}
for( var i=1; i<11; i++) {
document.write("*");
}
for( var i=11; i<=20; i++) {
document.write("*");
}
※ 수치를 달리하여 출력한다.
※ 출력물 사이에 공간을 발생시킨다.
예제2) 숫자를 1부터 10까지 출력한다.
for( var i=1; i<=10; i++) {
document.write( i );
}
※ 수치를 달리하여 출력한다.
※ 출력 숫자 사이에 공간을 발생 시킨다.
예제3) 숫자를 -5 ~ +4까지 출력한다.
for( var i=-5; i<=4; i++) {
document.write( i );
}
예제4) (가감출력) 10 ~ 1까지 화면 출력한다.
for( var i=10; i<=1; i-- ) {
document.write( i );
}
(풀어보기1)
- 숫자 1 ~ 31까지 출력한다. 숫자 뒤에 "일"을 붙여 출력한다. - 즉, 1일 2일 3일 .. 31일
(풀어보기2) 1 ~ 100까지 홀수 출력한다.
(방법1) 2씩 증가 시킨다.
(방법2) 1씩 증가하고 내부에서 조건식으로 해결한다.
(풀어보기3) 1 ~ 100까지 3의 배수를 출력한다.
(방법1) 3씩 증가 시킨다.
(방법2) 1씩 증가하고 내부에서 조건식으로 해결한다.
(풀어보기4) 달력 처럼 7일, 14일, 21일 다음은 줄바뀜 되어 출력한다.
1일 2일 3일 4일 5일 6일 7일
8일 9일 10일 11일 12일 13일 14일
15일 16일 17일 18일 19일 20일 21일
22일 23일 24일 25일 26일 27일 28일
29일 30일 31일
예제5 )구구단을 출력해본다. (2단 출력)
출력 예) 2 x 1 = 2
강사와 같이 출력한다.
(풀어보기5) 프롬프트로 단을 입력받아 출력한다.
(풀어보기6) 버튼을 10개 만들어본다.
[전송] [전송] [전송] [전송] [전송]
[전송] [전송] [전송] [전송] [전송]
(풀어보기7) 버튼에 수치를 넣어 출력한다..
[전송1] [전송2] [전송3] [전송4] [전송5]
[전송6] [전송7] [전송8] [전송9] [전송10]
● while 문
형식)
while( 조건식 ) {
실행 프로그램
}
예제1)
while( 20 < 10 ) {
document.write("*");
}
※ while문은 초기값과 증감조건의 설정이 특별하게 없다.
(1) 1부터 10까지 숫자를 출력한다.
var i=1; // 실행변수
while(i<=10){
document.write( i + " " );
i++; // 증감조건
}
# 결과 : 1 2 3 4 5 6 7 8 9 10
(2) 1940 ~ 2022까지 숫자를 출력한다.
var i=1940; // 실행변수
while(i<=2022){
document.write( i + " " );
i++; // 증감조건
}
{ 풀어보기1 }
1부터 10 사이의 홀 수값을 while문으로 출력
# 결과 : 1 3 5 7 9
{ 풀어보기2 }
※ while문을 이용하여 버튼 10개만들기
{ 풀어보기3 }
테이블모양 만들기
1 | 2 | 3 | 4 | 5 |
{ 풀어보기4 } for문 또는 while문 으로 구성
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
{ 풀어보기3 }
· 패스워드 걸기
· prompt를 통해 패스워드를 입력받아 123456 과 비교 다르게 입력했으면 continue 바르게 입력했으면 break
while(true) {
var pwd = prompt("패스워드 입력","요기다 입력");
if(pwd != "123456") {
continue;
} else {
break;
}
}