
1. for & for ~ for
1.1. Quiz


출력은 가로, 혹은 세로로만 가능함
1.1.1. Quiz15 - 구구단 출력 (가로)
1. 가로로 출력하면 단은 바뀌고, 1은 고정 -> 밖 for: 1 = i, 안 for: 단 = j
밖: for(int i = 1; i <= 9; i++)
안: for(int j = 1; j <= 3; j++)
2. 가로로 출력, 하나 끝날때 마다 8칸 띄어서 줄 맞춤
printf("%d x %d = %d\t", i , j, i*j) => 1*1=1 2*1=2 3*1=3
3. 한줄 내려서 밖 for인 i가 2부터 안 for인 j가 1~3까지 반복 출력
println을 밖 for안에 넣어주면 됨
=> 1x1=1 2x1=2 3x1=3
1x2=2 2x2=4 3x2=6
안for x 밖for = 안*밖
4. 1~3단, 4~6단, 7~9단 나눠서 출력
Quiz15 - 구구단 출력 (세로) - 복습
1. 세로로 봤을때는 밖 for인 단이 1, 4, 7로 늘어남
for(int i = 1; i <= 9; i+=3)
2. 안 for 1~9까지 바뀜
for(int j = 1; j <= 9; j++), pintln 하면
=> 1x1=1
1x2=2
1x9=9
4x1=4
4x2=8
4x9=36
7x1=7
7x2=14
7x9=63
3. 이 상태로 가로로 +1, +2씩 늘려가면서 출력, 한줄 끝나면 8칸 띄어쓰면서 줄맞춤
print( i + "x" + j + "=" + i*j + "\t") => 1x1=1
print( i + "x" + j + "=" + i*j + "\t") => 2x1=2
print( i + "x" + j + "=" + i*j + "\t") => 3x1=3
4. 1x1=1 2x1=2 3x1=3이 끝나면 아래부터 다시 시작해야 하니까 안 for문 안에 pirntln
5. 1 2 3 단이 끝나면 한줄씩 띄어서 구분해야 하니까 밖 for문 안에 pirntln

1.1.2. Quiz16 - 입력받은 가로, 세로 길이로 사각형
1. 가로, 세로 길이 입력 받음 => scanner 사용
2. for문 세로 b (행) 먼저 찍음
그 안에서 가로 a (열) 찍음
int i = 1; i <= b; i++
int j = 1; j >= a; j++ => 사각형 별 다 찍힘
3. a안에서 if문 사용하여 *하고 공백 구분
if( i == 1 || i == b || j == 1 || j == a ) => *
나머지 => 공백
결국 첫번째, 마지막 행, 열에서만 * 찍기
4. 가로로 한줄 다 찍고 내려와서 찍어야 하니까 println은 밖 for 안에 있어야 함


1.1.3. MultiForEx02 - 삼각형으로 별 찍기
1. 행(세로)을 나타내는 star 변수 선언
( 행 변경하기 용이: 맞춰서 찍어줌 )
2. 세로 i (행) 만들어서 내려오면서 pintln
그 안에서 가로 j (열) 찍음
int i = 1; i <= star; i++
int j = 1; j <=i*2-1; j++
별이 찍히는 규칙 찾기 중요
3. 공백은 별 찍기 전에 들어감
int j = 1; j <=star-i; j++
공백도 규칙 찾기 중요
MultiForEx02 - 역삼각형으로 별 찍기
1. 삼각형같이 세로 i (행) 만들어서 내려오면서 pintln
2. 그 안에 가로 j (열) 찍음
3. 별, 공백 규칙 찾기 중요
별: int j = 1; j <=(star2-i)*2+1; j++
공백: int j = 1; j <=i-1; j++
1.1.4. MultiForEx03 - 입력받은 수까지 중 소수의 개수
1. 정수 num 입력 받기 => scanner 사용
2. 밖 for i = 1부터 num까지
3. 안 for j = 1부터 i까지 i를 j로 나누면서 나머지가 0이면 딱 떨어지면(약수) count를 세겠다.
4. count 변수는 안 for 밖 = 밖 for 안에 생성
5. 밖 for에서 count == 2이면 1과 자기 자신인 소수
밖에 for가 반복하면서 count를 계속 초기화 시킴
다시 이해하기
약수 - 딱 나누어 떨어지는 수
소수 - 약수가 1과 자기 자신밖에 없는 수
2. 향상된 for
for ( 배열의 값을 담을 변수 선언 : 배열 이름 ) {
실행문;
}
- (배열 및 컬렉션에 들어있는) 모든 원소들에 대한 반복 작업 적합
- 연속된 자료를 실행시키기에 적합 - 사용만 가능
- 배열 다루기 용이
- 값을 임시 객체로 복사해서 사용하므로 원본을 사용하는 것이 아니므로
배열이나 ArrayList 값을 사용할 수는 있지만 수정 할 수 없음

EnhanceForEx - 향상된 for문으로 배열값
1. 배열 선언, 생성, 초기화
2. 향상 for문
변수 입력 : 배열 이름
3. 출력값
println(변수);
5. 반복문을 지나면서 i 1씩 증가
EnhanceForEx - 배열 값의 합계, 평균
(소수2자리까지)
1. 배열 선언, 생성, 초기화
2. 합계 구하려면 변수 sum생성
3. 향상된 for문 사용
for( 변수 입력 : 배열 이름 )
4. i 가 들어오면서 자기 자신에게 더함
sum += i;
5. 합계는 sum
6. 평균은 sum/score.length(배열 길이)
7. 평균은 소수 두자리까지 double로 캐스팅
표현값 %.2f 사용
2.1. 배열의 인덱스도 사용 가능
<java />
for (int[] query : queries) {
int i = query[0];
int j = query[1];
int temp = answer[i];
answer[i] = answer[j];
answer[j] = temp;
}
오늘 하루
기억에 남는 부분
- for ~ for문 i회전수 * j회전수 = 전체 회전수
어려운 부분
- for ~ for문, 향상된 for문 전체적으로 익숙하지 않음
- 약수, 소수관련 문제
문제 해결 부분
- 구구단 가로로 출력 부분
- 역삼각형으로 별찍기 규칙 찾기
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] Array insert, update, delete (배열의 삽입, 수정, 삭제) (0) | 2022.09.29 |
---|---|
[Java] 탈출문(break, continue, return), 무한루프 while(for), array (0) | 2022.09.28 |
[Java] 반복문(while, do~while, for) 02 + array (0) | 2022.09.26 |
[Java] 반복문(while) 01 (0) | 2022.09.23 |
[Java] 랜덤생성, array, 조건문(if, switch~case) (0) | 2022.09.23 |