1. 더블 반복문 (for)
var f,ff;
for(f=1;f<4;f++){
for(ff=1;ff<6;ff++){
console.log(ff);
}
}
=> 1 2 3 4 5가 3번 반복
😊응용문제
더블 반복문만 이용하여 다음 결과가 되도록 출력
4 5 6 3 4 5 2 3 4
var c,cc;
for(c=3;c>0;c--){
for(cc=1;cc<4;cc++){
console.log(cc+c);
}
}
2~9단 출력
var a,aa;
for(a=2;a<10;a++){
for(aa=1;aa<10;aa++){
console.log(a+"*"+aa+"="+a*aa);
}
}
더블반복문을 이용하여 다음 결과가 출력되는 코드를 작성
구구단 5단부터 8단까지 값 중 결과값이 짝수인 모든 숫자 합계 출력
var sum = 0;
for(a=5;a<9;a++){
for(aa=1;aa<10;aa++){
if(a*aa%2==0){
sum+=a*aa;
}
}
}
console.log(sum);
=> 870
2. 더블 반복문 (while)
var a=2;
while(a<=4){
var aa=1;
while(aa<=9){
//console.log(a*aa);
aa++;
}
a++;
}
- while, do~while 더블 사용시 작은 반복문에 대한 변수 선언을 큰 반복문 안에 적용해야만 정상적으로 반영
⭐작은 반복문 초기화 중요 //안할시 큰 반복문 한번만 돌고 멈춤
😊응용문제
다음 결과처럼 출력되는 더블 반복문 코드작성 (while 사용)
7 * 9 = 63
7 * 8 = 56
...
3 * 1 = 3
var b = 7;
while(b>2){
var bb=9;
while(bb>0){
console.log(b+" * "+bb+" = "+b*bb);
bb--;
}
b--;
}
2단 ~ 9단 결과값이 40이상인 구구단만 출력 (더블 while문 + if문 사용)
var h = 2;
var result = 0;
while(h<=9){
var hh=1;
while(hh<=9){
result=h*hh;
if(result>=40){
console.log(h+" * "+hh+" = "+result);
}
hh++;
}
h++;
}
구구단 6단~8단 중 결과값이 홀수 및 짝수 각각의 합계 출력 (더블while문 + if문 사용)
var c=6, cc=1;
var osum=0, esum=0, result=0;
while(c<9){
cc=1;
while(cc<10){
result=c*cc;
if(result%2==0){
esum+=result;
}else if(result%2==1){
osum+=result;
}
cc++;
}
c++;
}
console.log("짝수합 : "+esum);
console.log("홀수합 : "+osum);
⭐NaN오류 : Not a Number 변수선언하고 초기화 안했을때 자료형오류
3. 더블 반복문 (do~while)
var a = 1;
do{
var aa = 1;
do{
console.log(a+aa);
aa++;
}while(aa<4);
a++;
}while(a<4);
=> 123이 3번 반복
😊응용문제
구구단 2~4단 모든 결과값을 더한 값 출력
var b=2;
var sum=0;
do{
var bb=1;
do{
sum+=b*bb;
bb++;
}while(bb<10);
b++;
}while(b<5);
console.log(sum);
=> 405
구구단 8~9단 모든 결과 숫자를 합하여, 짝수인지 홀수인지
출력 단, 결과는 "최종합계는는 짝수 or 홀수입니다" 라고 출력
var c=8;
var sum2=0;
do{
var cc=1;
do{
sum2=c*cc;
cc++;
}while(cc<10);
c++;
}while(c<10);
if(sum2%2==0){
console.log("최종합계는 짝수입니다");
}else if(sum2%2==1){
console.log("최종합계는 홀수입니다");
}
=> 최종합계는 홀수입니다
4.복합 더블 반복문
var a;
for(a=2;a<=5;a++){
var b=1;
while(b<=9){
console.log(a+" * "+b+" = "+a*b);
b++
}
}
=> 2~5단 출력
😊응용문제
do~while + for문으로 위와 같은 결과를 출력
var c=2;
var d=1;
do{
for(d=1;d<=9;d++){
console.log(c+" * "+d+" = "+c*d);
}
c++;
}while(c<=5);
do~while문 while문 사용
다음과 같은 결과
2*2=4
3*2=6
3*3=9
4*2=8
4*3=12
4*4=16
...
5*5=25
var e=2;
var f=2;
while(e<=5){
f=2;
do{
//console.log(e+" * "+f+" = "+e*f);
f++;
}while(f<=e);
e++;
}
//같은 코드
do{
f=2;
while(f<=e){
console.log(e+" * "+f+" = "+e*f);
f++;
}
e++;
}while(e<=5);
do~while, for 사용
[결과]
6단~2단 역순으로 출력
6*9=54
6*8=48
...
2*1=2
var g=6, h=9;
do{
for(h=9;h>=1;h--){
console.log(g+" * "+h+" = "+g*h);
}
g--;
}while(g>=2);
for while if 사용
구구단 짝수단만 출력
var a;
for(a=2; a<=9; a++){
if(a%2==0){
var b=1;
while(b<=9){
console.log(a+" * "+b+" = "+a*b);
b++;
}
}
}
do~while + for 사용
구구단 2~8단 중 4단,7단,8단만 출력
var c=2;
var d;
do{
if(c==4||c==7||c==8){
for(d=1;d<=9;d++){
console.log(c+" * "+d+" = "+c*d);
}
}
c++;
}while(c<=8);
while, do~while 사용
사용자가 2개의 숫자를 입력합니다. 2개의 숫자 범위에 해당되는 구구단을 출력
단, 작은 반복문에 작동시 짝수에 해당되는 정수만 사용
예시
var no=3;
var no2=5;
=>3~5단
3*2
3*4...
var e = 2;
var f = 7;
var g = 1;
while(e<=f){
g=1;
do{
if(g%2==0){
console.log(e+" * "+g+" = "+e*g);
}
g++;
}while(g<=9);
e++;
}
주저리주저리
for문과 while문 중 while문이 더 빠름
실무에서 복합으로 사용할때 안쪽에 while 주로 사용
반복문 for while do~while을 자유자재로 왔다리갔다리 할 수 있게 연습!