ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 제어문 (if, switch, for, while...)
    프론트엔드 프로그래밍/JavaScript 2022. 1. 27. 21:33

    제어문

    -       프로그램의 흐름을 제어

    -       자바 언어와 완전 동일

    if(조건식) {

              조건의 결과 참일 때 수행되는 문장;

              1줄인 경우 괄호({}) 없어도 됨

              2줄 이상인 경우 반드시 괄호 있어야 함

    }

     

    if(조건식){

              조건의 결과 참일 때 수행되는 문장;

    } else {

              조건의 결과 거짓일 때 수행되는 문장;

    }

     

    if(조건식1){

              조건식1의 결과 참일 때 수행되는 문장;

    } else if (조건식2){   // else로 넘어 왔다는 것은 조건식1에 해당이 안 된다는 의미

              조건식1의 결과가 거짓이면서

              조건식2의 결과 참일 때 수행되는 문장;

    } else {   // 주의!!!! 여기에 조건식 없음 (조건식은 if 다음에만 적음)

              조건식1,2 모두 거짓인 경우 수행되는 문장;

    }

     

    중첩 if 문 : if문 안에 if문 사용

    if(조건식1){

              if(조건식2) {

              }

    } else {

     

    }

     

    if 문 연습문제1 : ifEx1.html

    -       숫자 3개를 입력 받아서 최대값 출력

     

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title>자바스크립트 </title>		
    		<script type = "text/javascript">
    			var num1 = prompt("숫자 1 입력");
    			var num2 = prompt("숫자 2 입력");
    			var num3 = prompt("숫자 3 입력");
    			
    			/* if(num1>num2 && num1>num3)
    				max= num1;
    			else if (num2>num3)
    				max= num2;
    			else
    				max= num3; */
    				
    			var max = num1;
    			 if (num2>max) max= num2;	
    			 if (num3>max) max= num3;	
    			
    			document.write("최대값 : "+ max);
    		</script>
    
    
    	</head>
    	<body>
    		
    	</body>
    </html>

     

    if 문 연습문제2 : ifEx2.html

    -       아이디를 “abcd”, 비밀번호를 “1234”로 입력하면 “로그인 성공” 화면에 출력

    -       다른 값 입력하면 “아이디 또는 비밀번호가 일치하지 않습니다” 알림창 출력하고 “로그인 실패” 화면에 출력

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>조건문 연습문제2</title>
    	<script type="text/javaScript">
    	var id='abcd';
    	var pwd='1234';
    	
    	var id2=prompt("아이디 입력");
    	var pwd2=prompt("비밀번호 입력");
    	
    	if(id==id2 && pwd==pwd2){
    		document.write("로그인 성공");
    	} else{
    		document.write("로그인 실패");
    	}
    </script>
    </head>
    <body>
    
    </body>
    </html>

    중첩 if 문 연습문제3 : ifEx3.html

    -       ifEx2에 추가

    -       아이디와 비밀번호 일치할 경우에

    -       “~(id)님 반갑습니다” 알림창 출력

    -       수도 알아맞히는 문제 및 결과 출력

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>중첩 if문 연습문제</title>
    	<script type="text/javascript">
    	var id='abcd';
    	var pwd='1234';
    	
    	var id2=prompt("아이디 입력");
    	var pwd2=prompt("비밀번호 입력");
    	var sudo='서울';
    	
    	if(id==id2 && pwd==pwd2){
    		alert(id+"님 반갑습니다");
    		var sudo2=prompt("대한민국의 수도는?");
    		if(sudo==sudo2){
    			document.write("정답입니다");
    		} else{
    			document.write("틀렸습니다. 대한민국의 수도는 서울입니다")
    		}
    	}	
    	 else{
    		 alert("아이디 또는 비밀번호가 일치하지 않습니다")
    		document.write("종료합니다");
    	}
    	
    	</script>
    </head>
    <body>
    
    </body>
    </html>

     if 문 연습문제4 : ifEx4.html

    -       상품번호와 주문수량을 입력받아서 주문액, 할인액, 총지불액을 구하여 출력하는 프로그램 작성

    -       1 노트북 1200000

    -       2 운동화 100000

    -       할인액

    -       주문액이 백만원 이상이면 주문액의 10% 

    -       5십만원 이상 백만원 미만이면 5%

    -       5십만원 미만 0%

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title>자바스크립트 if문 연습문제 </title>
    		<script type="text/javascript">
    			var prdNum = prompt("상품번호 입력", "1 또는 2 입력");
    			
    			//1 또는 2 입력한 경우
    			if(prdNum == 1 || prdNum == 2){
    				let prdName, prdPrice, prdQty, amount, discount, total;
    				
    				// 입력한 상품번호에 따라 상품명, 가격 지정
    				if(prdNum == 1){
    					prdName = "노트북";
    					prdPrice = 1200000;
    				} else {
    					prdName = "운동화";
    					prdPrice = 100000;
    				}
    				
    				// 주문수량 입력
    				prdQty = prompt("주문수량 입력");
    				
    				// 주문액 구하기
    				amount = prdPrice * prdQty;
    				
    				// 할인액 구하기
    				if(amount >= 1000000)
    					discount = amount * 0.1;
    				else if(amount >= 500000)
    					discount = amount * 0.05;
    				else
    					discount = 0;  // discount=0으로 초기화 했으면 이 문장 필요 없음
    					
    				// 총지불액 구하기
    				total = amount - discount;
    					
    				// 결과 출력
    				/* document.write("상품명 : " + prdName + "<br>");
    				document.write("가격 : " + prdPrice + "원<br>");
    				document.write("주문수량 : " + prdQty + "개<br>");
    				document.write("주문액 : " + amount + "원<br>");
    				document.write("할인액 : " + discount + "원<br>");
    				document.write("총지불액 : " + total + "원<br>"); */
    				
    				// 천단위 구분 : toLocaleString() 사용
    				document.write("상품명 : " + prdName + "<br>");
    				document.write("가격 : " + prdPrice.toLocaleString() + "원<br>");
    				document.write("주문수량 : " + prdQty.toLocaleString() + "개<br>");
    				document.write("주문액 : " + amount.toLocaleString() + "원<br>");
    				document.write("할인액 : " + discount.toLocaleString() + "원<br>");
    				document.write("총지불액 : " + total.toLocaleString() + "원<br>");
    				
    			} else {
    				alert("질못 입력하였습니다");
    				document.write("종료합니다");
    			}
    			
    		</script>
    	</head>
    	<body>
    		
    	</body>
    </html>

    상품번호 입력

    유효성 검사

    ok - 주문수량 입력 받고 / 계산/출력

    no - 잘못 / 종료

     

    상품번호 입력

    if(){

              주문수량 입력

              계산

              출력

    }else{

     잘못 / 종료

    }


    입력된 상품번호 유효성 검사 방법

    방법1

    // 1 또는 2입력한 경우

    if(prdNum == “1” || prdNum ==” 2”){

              주문수량 입력

              계산

              출력

    } else {

              //잘못 입력

              // 종료

    }

    // 1도 아니고 2도 아닌 경우

    if(prdNum != “1” && prdNum != “2”){

              //잘못 입력

              // 종료

    } else {

              주문수량 입력

              계산

              출력

    }

     

    천단위 구분 : toLocaleString() 함수 사용

    prdPrice.toLocaleString()


    switch 문

    -       형식

    주의

    -       수식으로는 값의 결과가 정수, 실수, 문자열, 객체 값이어야 함

    -       case 뒤의 value로는 반드시 하나의 값만 사용

    -       case 다음에는 콜론(:) 사용 (세미콜론 아님)

    -       break 문이 없는 경우 해당 case에서 실행이 멈추지 않고 다음 case 까지 수행됨

    -       break 없어도 되는 경우 : 여러 개 case 한꺼번에 처리할 경우

    -       case 100:

    -       case 95; grade = “A+”; break;

     

    switch 문 연습문제 : switchEx.html

    -       숫자 입력 받아서 해당 이미지 출력

    -       “다음의 숫자를 입력하세요”, “1 또는 2 또는 3”

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title>자바스크립트 switch 문</title>
    		<script type="text/javascript">
    			var input = prompt('다음의 숫자를 입력하세요.', '1 또는 2 또는 3');
    			
    			switch(input) {
    				case '1' :
    					document.write('<img src="image/lizard.png">');
    					break;
    				case '2' :
    					document.write('<img src="image/lizardon.png">');
    					break;
    				case '3' :
    					document.write('<img src="image/megalizardon.png">');
    					break;
    				default :
    					alert('잘못 입력했습니다.');	
    			}
    		</script>
    	</head>
    	<body>
    		
    	</body>
    </html>

    정수 (숫자)로 형변환

    prompt() 대화상자에서 입력된 숫자는 문자로 인식

    -       더하기 연산을 할 경우 문자 연산으로 처리

    -       숫자 연산 : 5 + 10 = 15

    -       문자 연산 : 5 + 10 = 510 (문자 연결)

    숫자로 연산하기 위해서는 숫자로 형 변환이 필요

    -       Number() : 숫자형으로 변환

    -       parseInt() : 정수형으로 변환

    -       예제 : typeConversion.html


    반복문

    -       for 문 / for in 문 / forEach()

    -       while 문

    -       do ~ while 문

     

    for 문 연습문제1 - forEx1.html

    -       다음과 같이 출력

    -       sum = 55

     

    for 문 연습문제2 - forEx2.html

    -       태그 반복 출력

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title>자바스크립트 for 문 - 태그 반복 출력</title>
    		<script type="text/javascript">
    			document.write('<ul><li>태그 반복 출력</li><ul><br>');
    			for(let i = 1; i <= 10; i++) {
    				// document.write('<li type="square"> i =' + i + '</li>');
    				//document.write("<li type='square'> i =" + i + '</li>');
    				document.write("<li type=\"square\"> i =" + i + '</li>');
    			}
    			document.write('</li></ul></ul>');
    		</script>
    
    	</head>
    	<body>
    		
    	</body>
    </html>

     따옴표 특수 문자

    -       문자열에 사용하는 경우 큰따옴표, 작은따옴표 구별 없이 사용 가능

    -       document.write(“”);

    -       document.write(““””); //동일한 따옴표를 중첩해서 사용할 경우 오류

    -       document.write(“‘’”);

    -       document.write(‘“”’);

    -       큰따옴표로 사용할 경우 특수문자로 사용 : \”

    -       document.write(“\”문자열\””);

    -       HTML : <ul type=”square”>

    -       “<ul type=\”square\”>”

     

    특수 문자

    -       \” : 큰 따옴표 (“)

    -       \’ : 작은 따옴표 (‘)

    -       \\ : 역슬래시 (\)

    -       \n : 줄바꿈

    -       \t : 탭

     

    for 문 연습문제3 - forEx3.html

    -       i 값과 sum값을 테이블 형태로 출력

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>자바스크립트</title>
    <style>
    th{ background: yellow;}
    td{
    	width:100px;
    	text-align: center;
    	}</style>
    	<script type="text/javascript">
    		var sum = 0;
    		
    		document.write("<table border=\"1\">");
    		document.write("<tr><th>i</th><th>sum</th></tr>")
    		
    		for(var i = 1;i<=10; i++){
    			sum+=i;
    			document.write("<tr><td>"+i+"</td><td>"+sum+"</td></tr>");
    			
    		}
    		document.write("</table>");
    	
    	</script>
    </head>
    <body>
    
    </body>
    </html>

    for in 문

    -       배열이나 객체를 쉽게 탐색 가능

    -       for(var 변수명 in 배열) {

    num = arr[i];

              }

    -       예제 : forIn.html

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>자바스크립트 for in 문</title>
    	<script type="text/javascript">
    	// 배열 선언 및 초기화
    	var fruits = ["사과","포도","복숭아"];
    	
    	//for in문 사용해서 배열의 각 초기화
    	for(var i in fruits)
    		document.write("fruits["+i+"]="+fruits[i]+"<br>");
    	
    	
    	</script>
    </head>
    <body>
    
    </body>
    </html>

    forEach() 함수

    -       배열.forEach()

    -       배열.forEach(function(){

    실행 문장

    -       });

    -       function()의 인수 3개 지정되어 있는데 사용안 해도 되고

    -       사용하는 경우 순서를 잘 알고 사용

    -       첫 번째 인수 : 배열의 항목

    -       두 번째 인수 : 배열의 인덱스

    -       세 번째 인수 : 배열  자체

    -       function(item)

    -       function(item, index)

    -       function(item, index, fruits)

    -       인수 이름은 상관 없음 : function(a, b, c)로 해도 됨

    -       예제 : forEach.html

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title>자바스크립트 forEach()</title>
    		<script type="text/javascript">
    			var fruits = ["사과", "포도", "복숭아"];
    			fruits.forEach(function(item){
    				document.write(item + "<br>");
    			});
    			
    			document.write("<hr>");
    			
    			fruits.forEach(function(item, index){
    				document.write(index + " " + item +  "<br>");
    			});
    			
    			document.write("<hr>");
    			
    			fruits.forEach(function(item, index, fruits){
    				document.write(index + " " + item +  " " +  fruits + "<br>");
    			});
    			
    			fruits.forEach(function(item, index, fruits){
    				console.log(index, item,  fruits);
    			});
    		</script>
    	</head>
    	<body>
    		
    	</body>
    </html>

     

    중첩 for 문

    중첩 for문 연습문제 : nestedForEx.html

    -       apple.png 사용

    -       그림과 같이 이미지 출력

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title>자바스크립트 중첩 for 문</title>
    		<script type="text/javascript">
             for(var i =0; i<4; i++){
            	 for(var j=0; j<7;j++){
            		 document.write('<img src =\"image/apple.png\">');  // \" 특수문자 사용
            		 
            	}
            	 document.write("<br>");        	 
             }
             
             document.write("<hr>");
             
             
             document.write("<br>");
    			for(var i = 1 ; i<=4 ; i++) {
    				for(var j=1 ; j<=7 ; j++) {
    					if(j%2==1)
    						document.write('<img src = \"image/apple.png\">');
    					else
    						document.write('<img src = \"image/bomb.png\">');
    				}
    				document.write("<br>");
    			}
    
    
    
          </script>
    
    
    	</head>
    	<body>
    		
    	</body>
    </html>

    -       bomb.png 사용

    whie 문

    -       조건식을 먼저 확인한 후

    -       조건식이 참인 경우 문장 반복 수행

     

    (초기값)

    while(조건식) {

       조건식이 참일 때 반복 수행되는 문장;

       (증감값)

    }

     

    while 문 연습문제 : whileEx.html

    -       입력한 수만큼 이미지 출력

    -       이미지 출력 순서 : cherry bomb apple

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title>자바스크립트 while 문</title>
    		<script type="text/javascript">
    			var num = parseInt(prompt("숫자 입력"));
    			var x = 1;
    			
    			document.write("<h2>총 " + num + "개의 이미지 출력 <h2>")
    			
    			while(x<=num) {
    				if(x % 3 == 1) 
    					document.write("<img src = 'image/cherry.png'>");
    				else if(x % 3 == 2) 
    					document.write("<img src = 'image/bomb.png'>");
    				else 
    					document.write("<img src = 'image/apple.png'>");
    				
    				x++;
    			}
    
    		</script>
    
    	</head>
    	<body>
    		
    	</body>
    </html>

    do ~ while 문

    형식

    do {

          반복 수행되는 문장 (조건식의 결과 참일 때 수행)

    } while (조건식);

    -       먼저 반복 수행되는 문장을 1번 수행한 후

    -       뒤에 있는 조건식을 보고서 참이면 계속 수행하고

    -       거짓이면 반복문 종료

    -       따라서, 최소 1번은 수행됨   

     

    do ~ while 문 연습문제 : doWhileEx.html

    -       [취소] 버튼 누를 때까지 경고창 출력

    -       경고창 출력 횟수 출력

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title>자바스크립트 do ~ while 문</title>
    		<script type="text/javascript">
    			var count = 0, answer;
    			
    			do {
    				count++;
    				alert('경고' + count);
    				answer= confirm('계속 경고창을 보시겠습니까?');
    			}while(answer);
    			
    			document.write('경고창 출력 횟수: '+ count);
    		</script>
    
    	</head>
    	<body>
    		
    	</body>
    </html>

     

    댓글

Designed by Tistory.