본문 바로가기

Frontend/Javascript

조건문과 반복문

조건문 - if

// if
if(조건식) {
  // 조건의 결과 참일 때 수행되는 문장;
  // 1줄인 경우 괄호({}) 생략 가능
}

// if - else
if(조건식){
  // 조건의 결과 참일 때 수행되는 문장;
} else {
  // 조건의 결과 거짓일 때 수행되는 문장;
}

// if - else if - else
if(조건식1){
  // 조건식1의 결과 참일 때 수행되는 문장;
} else if (조건식2){
  // 조건식1의 결과가 거짓이면서
  // 조건식2의 결과 참일 때 수행되는 문장;
} else {
  // 조건식1,2 모두 거짓인 경우 수행되는 문장;
}

// 중첩 if 문
if(조건식1){
  // 조건의 결과 참일 때 수행되는 문장;
  if(조건식2) {
    // 조건식1의 결과가 참이면서
    // 조건식2의 결과 또한 참일 때 수행되는 문장;
  }
} else {
  // 조건의 결과 거짓일 때 수행되는 문장;
}

 

예제 - 1

...

<script type="text/javascript">
  let max = 0;

  for (let i=1; i<=3; i++) {
  let num = parseInt(prompt(`숫자 ${i} 입력`));
  if (max < num) max = num;
  }
  document.write(`최대값 : ${max}`)
</script>

...

 

예제 - 2

...

<script type="text/javascript">
  let dbId = 'abcd';
  let dbPw = '1234';
  let inputId = prompt("아이디를 입력하세요.");
  let inputPw = prompt("비밀번호를 입력하세요.");
			
  if (inputId==dbId && inputPw==dbPw) document.write("로그인 성공")
  else {
    alert("아이디 또는 비밀번호가 일치하지 않습니다.")
    document.write("로그인 실패")
  }
</script>

...

 

예제 - 3

...

<script type="text/javascript">
  let dbId = 'abcd';
  let dbPw = '1234';
  let inputId = prompt("아이디를 입력하세요.");
  let inputPw = prompt("비밀번호를 입력하세요.");
			
  if (inputId==dbId && inputPw==dbPw){
    alert(`${inputId}님, 반갑습니다.`);
    let answer = prompt("대한민국의 수도는?");
    if (answer == '서울') document.write('정답입니다');
    else document.write('틀렸습니다. 대한민국의 수도는 서울입니다.');
    } else {
      alert("아이디 또는 비밀번호가 일치하지 않습니다.");
      document.write("종료합니다.");
    }
</script>
        
...

 

예제 - 4 : 천단위 구분 : toLocaleString() 함수 사용

...

<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>"); */
		
		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>

...

조건문 - switch

  • switch() 안의 값이 수식일 경우, 값의 결과가 정수, 실수, 문자열, 객체 값이어야 함
  • case 뒤의 value로는 반드시 하나의 값만 사용 
  • break 문이 없는 경우 해당 case에서 실행이 멈추지 않고 다음 case 까지 수행됨
  • break 없어도 되는 경우 : 여러 개 case 한꺼번에 처리할 경우
switch (수식) {
	case value1: 처리할 문장; break;
	case value2: 처리할 문장; break;
	case value3: 처리할 문장; break;
	...
	default: 처리할 문장;
}

 

예제

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Javascript </title>
		<script type="text/javascript">
			let num = prompt("숫자를 입력하세요.");
			switch(num) {
			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>

반복문 - for / for in / forEach

for in 문

  • 배열이나 객체를 쉽게 탐색 가능
  • key값과 value 값을 뽑아내는데 유용
for(var 변수명 in 배열) {
  num = arr[i];
}

중첩 for 문

 

forEach() 함수

  • 오직 배열과 함께 사용 가능 -> 배열.forEach()
  • function()의 인수 3개 지정되어 있음
  • 3개의 인수 모두를 필수적으로 사용하지 않아도 됨
  • 사용하는 경우 순서를 잘 알고 사용
  • 첫 번째 인수 : 배열의 항목
  • 두 번째 인수 : 배열의 인덱스
  • 세 번째 인수 : 배열 그 자체
  • function(item)
  • function(item, index)
  • function(item, index, fruits)
  • 인수 이름은 상관 없음 : function(a, b, c)로 해도 됨
배열.forEach(function(){
  실행 문장
});

 

예제 - 1

...

<script type="text/javascript">
	let num = parseInt(prompt("숫자 입력"));
	let sum = 0;
	for (let i=1; i<=num; i++) {
		document.write(`i = ${i}<br>`);
		sum+=i;
	}
	document.write(`sum = ${sum}`);
</script>

...

 

예제 - 2

...

<script type="text/javascript">
	document.write('<ul><li>태그 반복 출력</li><ul>');
	
	for (let i=1; i<=10; i++) {
		document.write(`<li type="square">i = ${i}</li>`);
	}
	document.write('</ul></ul>');
</script>

...

 

예제 - 3

...

<style>
	th { background:yellow;}
	td {
		width:100px;
		text-align:center;
	}
</style>
<script type="text/javascript">
	let sum = 0;
	document.write('<table border="1"><tr><th>i</th><th>sum</th></tr>');
	for (let i=1; i<=10; i++) {
		sum+=i;
		document.write(`<tr><td>${i}</td><td>${sum}</td></tr>`);
	}
	document.write("</table>");
</script>

...

 

예제 - 4

...

<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>

...

 

예제 - 5

...

<script type="text/javascript">
	// 배열 선언 및 초기화	
	var fruits = ["사과", "포도", "복숭아"];
	
	// for in문 사용하여 배열 각 원소의 값 출력
	for (var i in fruits)
		document.write("fruits[" + i + "] = " + fruits[i] + "<br>");
</script>

...

반복문 - while / do while

 

whie 문

  • 조건식을 먼저 확인한 후 
  • 조건식이 참인 경우 문장 반복 수행
(초기값)
while(조건식) {
   // 조건식이 참일 때 반복 수행되는 문장;
   // (증감값)
}

do ~ while 문

  • 먼저 반복 수행되는 문장을 1번 수행한 후, 뒤에 있는 조건식이 참이면 계속 수행 / 거짓이면 반복문 종료
  • -> 최소 1번은 수행됨
do {
  // 반복 수행되는 문장 (최초 한 번 수행된 후, 이후로는 조건식의 결과 참일 때 수행)
} while (조건식);

 

예제 - 1

...

<script type="text/javascript">
	let img = ['<img src="image/cherry.png">', '<img src="image/bomb.png">', '<img src="image/apple.png">'];
	var i = 0;
	let num = prompt("숫자 입력");
	document.write(`<h2>총 ${num}개의 이미지 출력</h2>`);
	while(num>0) {
		if (i>=3) i=0;
		document.write(img[i]);
		i++;
		num--;
	}
</script>

...

 

예제 - 2

...

<script type="text/javascript">
let cnt = 0;
	do {
		cnt++;
		alert("경고" + cnt);
		var warning = confirm("경고창을 출력하시겠습니까?");
	} while(warning);
	
	document.write("경고창 출력 횟수 : " + cnt);
</script>

...

'Frontend > Javascript' 카테고리의 다른 글

함수의 개념 / 함수 선언문과 함수 표현식  (0) 2021.12.08
배열  (0) 2021.12.08
[][][] 화살표함수 객체  (0) 2021.12.08
비교연산자와 논리연산자  (0) 2021.12.07
형변환  (0) 2021.12.07