반응형
중첩반복문
행 : 바깥 반복문
열 : 안쪽 반복문
for (int i=0;i<3;i++) {
for(int j=0;j<4;j++) {
System.out.print("("+i+","+j+")");
}
System.out.println();
}
구구단 프린트
for(int i=2;i<10;i++)
{
System.out.println("---"+i+"단---");
for(int j=1;j<10;j++)
System.out.print(i+"*"+j+"="+i*j+"\n");
System.out.println();
}
중첩 반복문에서의 break
라벨(이름 자유)이 있는 특정 반복문을 탈출할 수 있음.
그냥 break를 쓸 경우 가장 안쪽 반복문만 탈출함.
for(int i=2;i<10;i++)
{
System.out.println("---"+i+"단---");
for(int j=1;j<10;j++) {
if(i*j>50) {
break;
}System.out.print(i+"*"+j+"="+i*j+"\n");
}
System.out.println();
}
50이하인 모든 단의 수들이 출력된다. 즉 단이 2~9 모두 나오는 것을 보아 가장 바깥 for문은 탈출하지 못했다.
outer:
for(int i=2;i<10;i++)
{
System.out.println("---"+i+"단---");
for(int j=1;j<10;j++) {
if(i*j>50) {
break outer; //outer반복문을 탈출함
}System.out.print(i+"*"+j+"="+i*j+"\n");
}
System.out.println();
}
결과가 6단 중간에서 끊기는 것을 알 수 있다. outer break가 적용된 것이다.
중첩반복문에서 continue
마찬가지로 라벨을 사용할 수 있다.
* 구구단에서 단과 수가 같을때까지만 출력하고 싶을 때
outer:
for(int i=2;i<10;i++)
{
System.out.println();
System.out.println("---"+i+"단---");
for(int j=1;j<10;j++) {
System.out.print(i+"*"+j+"="+i*j+"\n");
if(j==i) {
continue outer;
}
}
}
E 모양으로 별찍기
abc:
for(int i=0;i<5;i++)
{
for(int j=0;j<3;j++) {
System.out.print("☆");
if(i%2!=0) {
System.out.println();
continue abc;
}
}
System.out.println();
}
출력형태
☆☆☆
☆
☆☆☆
☆
☆☆☆
2차원배열
참조의 참조 형태로 2차원 배열을 사용할 수 있다.
행/열로도 이해할 수 있다.
배열의 길이는 배열이름.length;로 사용한다.
문자열은 직접 수정이 불가능하다. 특정 자리의 문자열을 가져와서 처리한다.
i/j
|
0
|
1
|
2
|
3
|
0
|
0,0
|
0,1
|
0,2
|
0,3
|
1
|
1,0
|
1,1
|
1,2
|
1,3
|
2
|
2,0
|
2,1
|
2,2
|
2,3
|
2차원 배열은 다음과 같은 모양과 크기 , 이름을 가진다.
i는 행의 갯수, j는 열의 갯수이다.
2차원배열의 선언-할당-대입-사용
//1. 선언
int[][] arr; //java스타일 stack에 공간 생김. int[][]
//int arr[][];
//2. 할당
arr=new int [2][3]; //heap에 초기값 0으로 setting되어 저장됨.
//3. 값 대입
arr[0][0]=10;
arr[0][1]=20;
arr[0][2]=30;
arr[1][0]=40;
arr[1][1]=50;
arr[1][2]=60;
//4. 사용
for(int i=0;i<2;i++) {
for(int j=0;j<3;j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
2차원 배열의 초기화
- 배열변수선언, 할당, 대입을 동시에
char[][] chars=new char[][] {
{'a','b','c'},{'가','나','다'}
};
int[][] numbers = {{1,2,3},{4,5,6},{7,8,9},};//마지막 콤마 있어도 없어도 됨
for(int i=0;i<numbers.length;i++) {
for(int j=0;j<numbers[i].length;j++) {
System.out.print(numbers[i][j]+" ");
}
System.out.println();
}
2차원 배열 역시 어제 사용한 향상된 for문(for each문) 을 사용할 수 있다.
int[][] numbers={
{1,2,3},
{4,5,6},
{7,8,9},
};
for(int[] i: numbers) {
for(int j : i){
System.out.print(j+" ");
}
System.out.println();
}
오늘 알게된 꿀팁
여기서 유니코드 표를 볼 수 있다.
[이클립스 내 단축어]
ctrl+shift+y => 소문자화
ctrl+shift+x => 대문자화
반응형