제어문이란?
- 프로그램의 흐름을 제어하는 문장
조건문 | 특정 조건에 따른 실행(if/if-else/if-else if) |
선택문 | 특정 조건에 따른 실행(switch-case) |
반복문 | 특정 조건에 따라 반복 실행(for/while/do-while) |
[조건문 if문]
if(조건문){
조건문이 참일 때 실행하는 코드;
}
if(조건문)
실행문;
*if문은 실행하는 코득다 1줄일 때 중괄호 생략 가능
var number = 30;
//var number = prompt("숫자를 입력하세요!")
// 변수 number값이 50보다 클 때 "50보다 큰 값이 입력"
if( number > 50 ){
document.write("50보다 큰 값이 입력");
}
// Boolean(값) - > t/f 리턴;
// -> 0, null, undefined, ""(공백문자) -> false
// -> 그 외 모든 데이터 -> true
if(0){
document.write("@@@0@@@");
}
if(1){
document.write("@@@1@@@");
}
if("아이티윌"){
document.write("@@@아이티윌@@@");
}
//number 변수의 값이 양수일 때만 "양수!" 메시지 출력
if(number > 0){
document.write("양수!");
}
[if-else문]
if(조건문){
조건문이 참일 때 실행코드
}else{
조건문이 참이 아닐 때 실행코드
(그 외 나머지)
}
// 변수 number값이 홀수/짝수 구분해 보기
if( number%2 == 0){
document.write("짝수<br>");
}else{ // number%2 != 0
document.write("홀수<br>");
}
// confirm("퇴실 찍으셨나요? yes or no?");
var check = confirm("퇴실 찍으셨나요? yes or no");
if(check){
document.write("정상 출석!<br>");
}
// no
else{
document.write("퇴실 버튼을 눌러 주세요!<br>")
}
[if-else if 문]
if(조건문){
조건문 참일 때 실행문
}else if(조건문){
조건문2 참일 때 실행문
}else if(조건문){
조건문3 참일 때 실행문
}
....
else{
모든 조건을 제외한 경우 실행문
}
// 사계절
// 봄(3-5) 여름(6-8) 가을(9-11) 겨울(12-2)
var month = 1;
// 변수 month의 값에 따라서 계절 정보 출력
// "00월은 oo입니다."
// 3-5 봄
if(3 <= month && month <= 5){
document.write(month+"월은 봄입니다");
}else if(6 <= month && month <= 8){
document.write(month+"월은 여름입니다");
}
else if(9 <= month && month <= 11){
document.write(month+"월은 가을입니다");
}
else if(1<= month && month <=2 || month){
document.write(month+"월은 겨울입니다");
}
else{
document.write("1~12월까지 정상적인 데이터를 입력하세요!")
}
[중첩 if문]
if(조건문){
참일 때 실행하는 코드 -> if문 가능? O
if(조건문2){
참일 때 실행하는 코드
}
}
if(조건문 && 조건문2){
참일 때 실행하는 코드
}
var DBID = "itwill"
var DBPW = "1234";
// 로그인 만들기
// 1. ID/PW 입력
// 2. ID(입력) - ID(기존)가 같은지 비교
// 3-1. 같은 경우 (회원)
// 4. PW(입력) - PW(기존)가 같은지 비교
// 5-1. (아이디 같음) 비밀번호 같음
// 6. 본인(로그인 성공)
// 5-2. (아이디 같음) 비밀번호 다름
// 6. 본인X(로그인 실패-비밀번호 오류)
// 3-2. 다른 경우 (비회원)
//
document.write("<hr>");
var DBID = "itwill";
var DBPW = "1234";
// 로그인 만들기
// 1. ID/PW 입력
var inputID = prompt(" 아이디를 입력하세요. ");
var inputPW = prompt(" 비밀번호를 입력하세요.");
// 2. ID(입력) - ID(기존)가 같은지 비교
if(inputID == DBID){
// 3-1. 같은경우 (회원)
// 4. PW(입력) - PW(기존)가 같은지 비교
if(inputPW == DBPW){
// 5-1. (아이디같음) 비밀번호 같음
// 6. 본인(로그인 성공)
alert(" 로그인 성공! ");
}else{
// 5-2. (아이디같음) 비밀번호 다름
// 6. 본인X(로그인 실패-비밀번호 오류~)
alert(" 로그인 실패(비밀번호 오류)");
}
}else{ // 3-2. 다른경우 (비회원)
alert(" 회원정보가 없습니다! (비회원)");
alert(" 아이디 혹은 비밀번호가 잘못되었습니다. ");
}
if(inputID == DBID && inputPW == DBPW){
}else{
}
[switch-case문]
- 특정 값을 만족할 때 실행하는 코드
// switch(변수/정수,문자){
// case 값1:
// 실행문1;
// [break;]
// case 값2:
// 실행문2;
// [break;]
// case 값3:
// 실행문3;
// [break;]
// default:
// 실행문;
// }
// switch-case 문
// 1) 처음~끝까지 실행하면 종료
// 2) default 구문을 실행하면 종료
// 3) case를 실행해서 break문을 실행하면 종료
// (* case를 실행해서 break문이 없으면
// 다음 break문을 실행할때까지 모든코드 실행)
var num = 8;
switch (num) {
case 10:
alert(" 10! ");
break;
case 9:
alert(" 9! ");
break;
case 8:
alert(" 8! ");
//break;
case 7:
alert(" 7! ");
break;
case 6:
alert(" 6! ");
break;
default:
alert(" 지원하지 않는 숫자 입니다 ");
}
//Q. 학점 출력 프로그램 작성
// 학생의 점수에 따른 학점 출력 (학생의 점수는 항상 0~100숫자)
// 100 - A
// 90~99 - A
// 80~89 - B
// 70~79 - C
// 60~69 - D
// 0~59 - F
var score = 77;
// 1) if-else if
if(90 <= score && score <=100){
alert("A 학점");
}else if(80 <= score && score <=89){
alert("B 학점");
}else if(70 <= score && score <=79){
alert("C 학점");
}else if(60 <= score && score <=69){
alert("D 학점");
}else{
alert("F 학점(0~59점)");
}
// 2) switch-case
// 100 - A
// 90~99 - A
// 80~89 - B
// 70~79 - C
// 60~69 - D
// 0~59 - F
// 각 점수의 10자리만 저장
var tmpScore = Math.floor(score / 10);
switch(tmpScore){
case 10:
case 9 :
// alert("A");
grade = "A";
break;
case 8:
// alert("B");
grade = "B";
break;
case 7:
// alert("C");
grade = "C";
break;
case 6:
// alert("D");
grade = "D";
break;
default:
alert("F");
grade = "F";
}
///////
// 사용자가 이동하고 싶은 홈페이지 이름을 입력
// ex) 네이버, naver. NAVER... -> 네이버 홈페이지로 이동
// 구글 -> 구글 홈페이지 이동
// location.href="https://www.naver.com";
var site = "tistory";
switch(site){
case "티스토리":
case "TISTORY":
case "tistory":
break;
}
- HTTPS 프로토콜 사용! 안 쓰면 안 들어가짐..
[반복문 for]
<script>
for(초기식;조건식;증감식){
반복할 코드(조건식이 참일 때)
}
// 숫자 출력(1~10)
for(var i=1;i <=10;i++){
document.write( i+" " );
}
document.write("<hr>");
// 숫자 (11~25)
for(var i=11;i <=25;i++){
document.write( i+" " );
}
document.write("<hr>");
// 0~9
for(var i=0;i <10;i++){
document.write( i+" " );
}
document.write("<hr>");
// 10 9 8 7 6 5 4 3 2 1
for(var i=10;i >=1;i--){
document.write( i+" " );
}
document.write("<hr>");
// 1~10숫자 중 홀수만 출력
for(var i=1; i<=10;i++){
document.write( i+" " );
i++;
}
// OR
for(var i=1;i<=10;i+=2){
document.write( i + " ");
}
// 짝수 출력
for(var i=2;i<=10;i+=2){
document.write( i + " ");
}
// 구구단 출력
// [2단]
// 2*1=2
// 2*2=4
//...
// 2*9=18
var dan = 2;
document.write("["+dan+" 단]<br>")
for(var i=1;i<=9;i++){
document.write( dan + " * " + i + "=" +(dan*i)+"<br>");
}
// 누적합 A+=B <-> A = A+B
// 1~10까지 숫자의 합 출력
var sum = 0;
for(var i = 1; i <= 10; i++){
// 1~10
// 1+2+3+4+5+6+7+8+9+10
sum += i;
document.write("sum:"+sum+", i="+i+"<br>");
// sum = sum + i;
}
document.write("1~10까지 합: "+sum+"<br>");
[반복문 while]
// while문
초기식;
while(조건식){
반복할 코드;
증감식;
}
//1~10 출력
var i =1;
while(i<=10){
document.write(i+" ");
i++;
}
document.write("<hr>")
// 20~1 출력
var i =20;
while(i>=1){
document.write(i+" ");
i--;
}
document.write("<hr>")
// 1-100 누적합 - while
var sum = 1;
while(i<=100){
sum += i;
i++;
}
document.write("총합: "+sum);
[반복문 do-while]
초기식;
do{
반복할 코드;
증감식;
}while(조건식);
// 1~10까지 숫자 중 홀수만 출력
var i =1
do{
document.write( i + " ");
// i
}while(1<=10);
//for(초기식;조건식;증감식){
// 반복할코드 실행문;
// 제어문(if-else)
// }
// 1~10까지 숫자 중에서
// 홀수, 짝수의 합을 각각 계산
var odd_sum = 0;
var even_sum = 0;
for(var i =1;i<=10;i++){
if(i%2 !=0){//홀수
odd_sum += i;
}
else{//짝수
even_sum += i;
}
}
document.write("홀수합 :"+odd_sum+"<br>");
document.write("짝수합 :"+even_sum+"<br>");
// 중첩for문(이중for문/다중for문)
//for(초기식;조건식;증감식){ //out
// *반복할 코드;
// for(초기식;조건식;증감식){ //in
// 반복할 코드;
// }
// * 반복할 코드;
//}
// 중첩 for문을 사용하여
// 9시0분~10시0분까지 출력
for(var h=9;h<=10;h++){
for(var m=0;m<=60;m++){
if(m==60){
document.write((h+1)+"시 "+0+분+"분<br>");
}else{
document.write(h+"시"+m+"분<br>");
}
}
}
<script>
// 테이블 표 안에 숫자 출력
var num = 1;
var tag ="<table border='1'>";
// tag +="<tr></tr>"
for(var r=1;r<=5;r++){
tag += "<tr>";
for(var c=1;c<=3;c++){
tag += "<td>"+num+"</td>";
num++;
}
tag += "</tr>"
}
tag += "</table>"
document.write(tag);
</script>
<script>
// 보조 제어문
// 1. break; 가장가까운 반복문 하나 탈출
// 2. continue; 특정 조건을 무시하고 다음반복문 실행
// for(;;){
// // 무한루프
// }
// for(;true;){
// // 무한루프
// }
// while(true){
// // 무한루프
// }
// do{
// // 무한루프
// }while(true);
// 특정 숫자 찾기
// 0.0 <= Math.random() < 1.0
// 0.0 <= Math.random()*10 < 10.0
// 1 <= Math.random()*10 < 11
let Quiz = Math.floor(Math.random()*10)+1;
document.write("Q : "+Quiz+"<br>");
// prompt 사용자 숫자 입력
// -> 정답을 찾을 때까지 수행
// 오답-> 입력값-정답 크기 비교(누가 더 큰지 체크)
// 입력>정답 => "더 작은 값을 입력"
// 입력<정답 => "더 큰 값을 입력"
// 입력==정답 => "정답 (횟수:00회)"\
let cnt = 0;
do{
let input = prompt("1~100 값을 입력하세요!");
cnt++;
if(input > Quiz){
alert("오답! 더 작은 값을 입력하세요!");
}else if(input < Quiz){
alert("오답! 더 큰 값을 입력하세요!");
}else{ // input == Quiz
alert("정답! 도전 횟수: "+cnt+"회");
break;
}
}while(true);
</script>
'⛏️ > JavaScript' 카테고리의 다른 글
[JavaScript] 5. 객체 (0) | 2023.08.04 |
---|---|
[JavaScript] 4. 함수 (0) | 2023.07.31 |
[JavaScript] 2. 출력문과 변수, 연산자 (0) | 2023.07.24 |
[JavaScript] 1. 자바 스크립트 특징 (0) | 2023.07.24 |
[JavaScript] 0. 개요 및 VS Code 설치 (0) | 2023.07.21 |