안녕하세요. ,스마트팩토리입니다. 자바기초 # 015. 반복문(5)중첩 반복문 for문 : 구구단 전체 출력 프로그램 - 디버깅( f11)과 resume(f8)로 토글포인트 설정하여 진행하는 방법에 대해 알아보겠습니다.
1. 중첩 반복문 for문
가. 중첩 반복문 for문 구조
(1) 이중for문)=중첩 for문 구조
for( 외부초기화; 외부조건식; 외부증감식)
{ for (내부초기화;내부조건식;내부증감식){ 내용}
이중 for문이라 for문 안에 for문이 또 있는 형태를 말합니다.
for문을 잠시 보면 for(초기화;조건식;증감식){ 실행문)이 있는데
여기서 실행문 안에 또 다른 for문이 있는 것을 말합니다. 편의상 안에 있는 for문을 내부 for문, 밖에 있는 것을 외부for문이라고 하면 ( ) 안에 있는 초기값,조건식, 증감식을 외부 for문에서 외부초기화, 외부조건식, 외부증감식, 내부 for문에에서는 내부 초기화, 내부 조건식, 내부 증감식이라고 부를 수 있습니다. 그럼 그 흐름도를 직접 코딩을 보고 알아보겠습니다.
콘솔 출력값이 전체 화면으로 안나오기 때문에 직접 복사 카피 해 보았습니다.
구구단2단 은>>
2*1=2
2*2=4
2*3=6
2*4=8
2*5=10
2*6=12
2*7=14
2*8=16
2*9=18
구구단3단 은>>
3*1=3
3*2=6
3*3=9
3*4=12
3*5=15
3*6=18
3*7=21
3*8=24
3*9=27
구구단4단 은>>
4*1=4
4*2=8
4*3=12
4*4=16
4*5=20
4*6=24
4*7=28
4*8=32
4*9=36
구구단5단 은>>
5*1=5
5*2=10
5*3=15
5*4=20
5*5=25
5*6=30
5*7=35
5*8=40
5*9=45
구구단6단 은>>
6*1=6
6*2=12
6*3=18
6*4=24
6*5=30
6*6=36
6*7=42
6*8=48
6*9=54
구구단7단 은>>
7*1=7
7*2=14
7*3=21
7*4=28
7*5=35
7*6=42
7*7=49
7*8=56
7*9=63
구구단8단 은>>
8*1=8
8*2=16
8*3=24
8*4=32
8*5=40
8*6=48
8*7=56
8*8=64
8*9=72
구구단9단 은>>
9*1=9
9*2=18
9*3=27
9*4=36
9*5=45
9*6=54
9*7=63
9*8=72
9*9=81
결과값이 문제 없이 나온 것을 알 수 있습니다.
여기서 if문을 사용한 것은
구구단 2단은? 3단은? 과 같이 나타내기 위함입니다.
package operation;
import java.util.Scanner;
public class Ex01_019Fosingleloop2num2 {
public static void main(String[] args) {
for( int i=2;i<10;i++) { --> 외부 for문
for(int j=1;j<10;j++) { --> 내부for문
if(j==1) {
System.out.println("구구단"+i+"단 은>>");
}
System.out.println(i+"*"+j+"="+i*j);
}-> 내부 for문 종료
}-->외부for문 종료
}
}
이중 for문이 다소 까다로울 수 있습니다. 하지만 직접 작성해서 흐름을 파악하면 생각보다 어렵지 않다는 것을 알 수 있습니다.
나. 디버깅으로 보기
이클립스에서 작성한 프로그램은 보통 실행(ctrl+f11) 을 눌러서 콘솔창에서 봅니다.
하지만 이번 처럼 긴 경우에는 처음부터 끝까지 다 볼수가 없을만큼 빠른 속도로 실행이 됩니다.
그래서 이때 천천히 콘솔창에 진행되도록 볼 수 있는 방법이 디버깅입니다.
단축키는 f11 입니다.
디버깅을 하기 전에 먼저 토글 브레이킹 포인트를 설정해야 합니다.
라인넘버 있는 부분에 마우스를 가져다 놓고 더블클릭하면 파란색 부분 안쪽에 토글키가 생성됩니다.
토글이 바로 브레이킹 포인트입니다. 다시 한번 더블클릭하면 토글키는 해제됩니다.
이는 그 부분에 와서 프로그램이 잠시 정시됩니다.
다시 진행하기 위해서는 f8을 눌러줍니다.
ctrl +f 11을 눌러 디버깅 없이 실행을 누르면 위처럼 처음에 2단부터 볼수가 없습니다.
그래서 디버깅으로 해서 봐야 합니다.
사실 디버깅은 프로그램에 오류가 있을때 진행과정을 보기 위함도 있습니다. 오류 난 부분을 찾으려면 실행과정을 봐야 하니까요.
console 창과 Variables창이 열려야 합니다. 혹여나 Variable창이 닫혔을 경우에는
Window-> Show View-->Varialbe을 클릭해서 활성화 시키면 됩니다.
혹여나 Varibales 탭이 없는 경우는 먼저 디버깅을 실행한 다음에 열어보면 있을 것입니다.
콘솔창과 Variable창을 열어 놓고 f8(resume) 을 누르면 순차적으로 진행됩니다.
f8을 누르면 순차적으로 해당 라인 전까지 실행됨을 알 수 있습니다.
반복해서 누르면 프로그램이 진행되면서 변수값들이 변하는 것을 볼 수 있습니다.
이중 for문과 같이 외부for문과 내부 for문이 있을때 흐름도를 파악하기에 아주 좋습니다.
순차적으로 눌러보면서 어떻게 진행되는지 확인해 보면 보다 빠르게 이해할 수 있습니다.
댓글