[반복문]
for(반복문 중 제일 느림 - 10000번 부터 속도 차이가 발생)
while
do~while
실무에선 배열 사용 많이함/배열은 foreach,forin 사용 (훨씬 빠름)
⚡ 반복문(while문)
var a = 1; //초기값 while(a <= 10){ //종료값 및 범위값 // console.log(a) //출력 a++; //증가 or 감소 } //역순 var b = 20; while( b >= 15){ console.log(b); b--; } /* [응용문제2] while문을 이용하여 1부터 10까지의 모든 숫자를 합한 결과값을 출력하시오 */ var d=1; //초기값 var sum=0; //합계에 사용할 변수 while(d <= 10){ //종료값 sum += d; //sum이라는 변수에 총 합계를 누적 d++; //증가값 } console.log(sum); //5
⚡ while + if
/* while + if결합 : 1~10 까지 4,7,9 출력 연산기호 || : 여러개의 조건 중 한가지라도 맞을 경우 && : 여러개의 조건이 모두 맞을 경우 */ var e=1; while(e < 11){ if( e==4 || e ==7 || e==9 ){ //or 연산자 사용 console.log(e) } e++; } /* [응용문제3] 1~20까지의 숫자중 짝수의 숫자 모든 합계와 홀수의 숫자 모든 합게의 결과값을 각각 출력하시오 */ var f=0; var f1 = 0; //짝수 var f2 = 0; //홀수 while(f < 21){ if(f%2==0){ //짝수일 경우 f1 += f; //f=f1+f; 와 같음 }else{ f2 += f; } f++; } console.log("짝수 합게 : " + f1); console.log("홀수 합게 : " + f2);
⚡ do~while문
while문보다빠름(사실 차이 별로 없음)while문은 초기값 세팅을 반드시 해줘야함
-> var a; (X) var a=0;(O)var a = 0; //초기값 do{ //do시작 console.log(a) a++; }while(a<10); //종료값(범위값) /* [응용문제4] 20~27까지 모든 숫자의 곱한 결과값 출력 */ var b=20; var sum=1; do{ sum *= b; b++; }while(b<=27) console.log(sum); //89513424000 /* 사용자가 임의의 구구단 수를 입력합니다. 해당 구구단 결과값 중 짝수에 해당 되는 숫자만 출력하는 반복문 제작 */ var no=5; //사용자가 입력한 값 var w=1; //반복문 기초값 var sum=0; do{ var sum = no*w; //산술연산 if(sum%2 == 0){ //짝수 조건 console.log(no*w) } w++; }while(w <= 9); /* [응용문제5] 1~100까지 숫자 중 2의배수와 3의배수가 모두 포함한 숫자 결과에 대한 카운팅 값을 출력 하시오 (== 2의배수와 3의배수의 공통 숫자 갯수는?) */ var z=1; //초기값 var count=0; //카운팅 do{ if(z%3==0){ if(z%2==0){ count+=1; //2의배수와 3의배수 공통숫자가 등장할때마다 1씩 + } } z++; }while(z < 101) console.log(count);
⚡더블 반복문
실무에서 무지 많이 쓰임
배열에 주로 사용
-더블 반복문(for)
var a,b; for( a = 2; a <= 9; a++){ //큰 반복문 (2~9) for( b=1; b <= 9; b++){ //작은 본복문 (1~9) : 큰 반복문 한번 돌때 작은 반복문 9번 돈다 console.log(a+" x "+b+" = "+(a*b)); //구구단 2단~9단 출력 } } var c,d; //반복문 변수선언 for( c=1; c<=3; c++ ){ for (d=1; d<=c; d++){ //큰 반복문 숫자에 따라 반복횟수가 달라짐 console.log( c +" + " + d + " = " + (c+d)) } } /* 1 + 1 = 2 2 + 1 = 3 2 + 2 = 4 3 + 1 = 4 3 + 2 = 5 3 + 3 = 6 출력 */ /*---------------------------------------------*/ /* [응용문제] 해당 범우에 맞게 구구단 역순으로 출력하는 더블 반복문을 작성하시오 결과 5*1=5 5*2=10 5*3=15 4*1=4 4*2=8 4*3=12 ... 2*3=6 */ var aa,bb; for( aa=5; aa>=2; aa-- ){ for( bb=1; bb<=3; bb++ ){ console.log(aa+"x"+bb+"="+aa*bb) } }
- 더블for + if
var z,zz; for(z=2; z<=9; z++){ //2~9 if(z%2==0){ for(zz=1; zz<10; zz++){ //1~10 var sum = z*zz; // console.log(z+" x "+ zz + " = " + sum) } } } /*------------------------------------------*/ /* [응용문제] 구구단 2~9단 중 결과값이 미만 미만의 구구단만 출력 */ var s,ss; for(s=2; s<=9; s++){ for(ss=1; ss<=9; ss++){ var sum = s*ss; if(sum < 50){ console.log(s+" x "+ss+" = "+sum); } } }
- 더블반복문 while
큰 반복문 -> 작은반복문 들어갈때 변수값을 초기화하기 때문에
작은 반복문의 변수값은 안쪽에 선언해줘야한다/* 구구단 */ var a=2; //큰 반복문 초기값 while(a<=9){ //큰 반복문 범위값 2~9 //큰 반복문이 실행되며 변수값을 초기화 var aa=1; //작은 반복문 초기값 while(aa<=9){ //작은반복문 범위값 1~9 var sum = a*aa; console.log(sum); aa++; } a++; } /* [응용문제] 다음 결과처럼 출력이 되도록 while문으로 코드를 작성하시오 결과 9*9 = 81 9*8 = 72 .. 9*5 = 45 8*9 = 72 8*8 = 64 .. 8*5 = 40 6*9 = 54 6*8 = 45 .. 6*5 = 30 */ var b = 9; while( b >= 6 ){ var bb= 9; while( bb >= 5){ var sum = b*bb; console.log(b+"x"+ bb +"="+ sum); bb--; } b--; }
- 더블while + for
/* 7단 ~ 8단 중에서 홀수 결과 */ var x = 7; while(x <= 8){ var xx=1; while(xx <= 9){ var total = x*xx; if(total%2 != 0){ //홀수 조건일 경우 console.log(total) } xx++; } x++; } /* [응용문제] 구구단 2~9단까지 중 홀수에 해당되는 구구단과 1~9까지 곱하는 결과값 중 홀수값의 총 합계는? */ var s = 2; var total = 0; while(s<=9){ var ss=1; if(s%2 == 1){ //홀수에 해당되는 구구단 while(ss <= 9){ var sum = s*ss; if(sum%2 == 1){ //결과값의 홀수조건 total += sum; } ss++; } } s++; } console.log(total) //600
- 더블 반복문(do~while)
var a=4; //큰 반복문 초기값 do{ var b=4; //작은 반복문 초기값 do{ console.log(a+" x "+b +" = "+ a*b) b++; }while(b<=9) a++; }while(a<=5); /*-------------[응용문제]-----------------*/ /* 다음과 같이 출력되도록 더블 반복문을 이용하여 코드를 작성하시오. 5+5=10 6+5=11 6+6=12 7+5=12 7+6=13 7+7=14 8+5=13 8+6=14 8+7=15 8+8=16 9+5=14 9+6=15 9+7=16 9+8=17 9+9=18 */ var z = 5; do{ var zz= 5; do{ var sum = z+zz; console.log(z +"+"+ zz +"="+ sum) zz++; }while(zz <= z) z++; }while(z <= 9) /*-------------[응용문제]----------------*/ /* do~while문으로 해당 조건에 맞는 결과로 출력되도록 코드를 작성하시오. (반복문,조건문) 결과 21 3 35 5 42 6 49 7 63 9 */ var t=3; do{ if(t!=8 && t!=4){ console.log(7*t); } t++; }while(t<=9) /*-----------------[응용문제]----------------*/ /* 더블 do~while문과 조건문을 이용하여 다음과 같은 결과와 동일하게 출력되는 코드를 작성하시오. (구구단) 2 6 10 14 18 3 9 15 21 27 5 15 25 35 45 */ var e=2; do{ if(e != 4){ var ee=1; do{ if(ee%2 ==1){ console.log(e*ee); } ee++; }while(ee<=9) } e++; }while(e<=5)
⭐ 복합 더블 반복문 : 실무에서는 거의 이렇게 섞어서 씀ㅋ
//구구단 2~5 출력 for(var a=2; a<=5; a++){ //for문 var b=1; //do~while의 시작값 do{ console.log(a*b) //연산 및 출력 b++; //do~while문 증감 }while(b<=9) }
⚡ 선택문(switch ~ case)
조건문과 다른점 : 조건문과 다르게 범위를 정할 수 없음 . 딱 지정값에만 실행
- 라디오버튼에 주로 사용
- 문자와 숫자를 구분하며, 해당 case가 맞을 경우 break를 이용하여 해등 프로세스를 종료
- default 는 else와 비슷한 속성을 가진다
- 안에 조건무 반복문 모두 들어갈 수 있음^^(단, 무조건 case 안에만 들어 갈 수 있음)
-> JAVA도 마찬가지ㅎ
var no=1; //문자와 숫자 구분 var no="1"; 작성시 default로 넘어감 //문자일경우 : 인자값 / 숫자일경우 : 인수값 (Java에서는 인자값이고만 함) //switch 함수 switch(no){ //해당 변수값을 받음 case 1: //파트 console.log("숫자 1 선택하셨습니다.") break; case 2: console.log("숫자 2 선택하셨습니다.") break; default: //생략 가능 case만 써두됨 console.log("기타 선택"); break; } /*-----------------------------------------------*/ var lebel = 3; var messeage; switch(lebel){ case 1: messeage = "일반회원"; break; case 2: messeage = "실버회원"; break; case 3: messeage = "골드회원" break; default: messeage = "비회원" break; } console.log(messeage) /*-----------------------------------------------*/ //multi case(멀티 케이스) var pay = "vbank"; switch(pay){ case "무통장": console.log("무통장 입금") break; //multicase 사용함 case "신용카드": case "card": case "CARD": console.log("신용카드 결제") break; //multicase 사용함 case "가상계좌이체": case "bank": case "vbank": //이렇게 쭉 붙여서 써도 됨 console.log("가상계좌이체") break; case "휴대폰": console.log("휴대폰 결제") break; }
- swich & 조건문 or 반복문
var lebel = 1; var messeage; var deep = true; switch(lebel){ //if,for,do~while,while 은 무조건 case 안에 작성 case 1: if(deep == false){ messeage = "일반회원"; }else{ messeage = "휴면회원"; } break; case 2: messeage = "실버회원"; break; case 3: messeage = "골드회원" break; default: messeage = "비회원" break; } console.log(messeage) //휴면회원
'CLASS > HTLML,CSS,JS' 카테고리의 다른 글
#6-1 / 배열,랜덤함수 (0) | 2024.04.25 |
---|---|
#5-2 / Js(함수) (0) | 2024.04.24 |
#4 / Js.1 (0) | 2024.04.23 |
#3 (0) | 2024.04.22 |
#2 (0) | 2024.04.21 |