ㅇ for문
스크린샷
그러면 이걸 간단하게 만들자. 포문으로 써보자.
와일문에서 썼던 3단계를 한 ()안에 넣는거야
for문 안에서 실행이 어떻게 되는 지를 알아야 해

제일 먼저 실행되는 건 초기화 구문
반복문 실행되면 최초로 한 번 밖에 사용 안 해
그래서 반복문 안에서 사용할 변수를 선언하는 용도로 사용
두번째는 검사조건을 봐
그 다음 중괄호로 가 - 실행문장들 실행
그 다음 반복 후 작업
1번으로 돌아가는 게 아니라 2번 검사조건으로 가
1-2-3-4-
-2 3-4-
-2-3-4
중간 반복문이 거짓이 될 때까지 반복
그래서 그 변수 여러 개 만들 수 있어

공간을 이해하고 있어야 해
변수는 포문 안에서 얼마든지 쓸 수 있다.
반복이 끝나고 나서 해야할 연산 작업이라서 ??????도 할 수 있어
ㅇfor문 예제
1~100 3의 배수 합 출력

누적 할 꺼니까
포문 앞에 누적용 변수 하나 만들고 나서
이때 선언만 하면 안되고 초기화 변수 넣어줘야 해
포문 안에 누적 하는 식 써주면 돼
ㅇ 포매팅 쓸 수 있어
스트링이라는 놈한테 스캐너처럼 포매팅이라는 기능이 있어
이걸 이용하면 문자열 포매팅을 할 수 있어

<6교시>
ㅇ 수열문제
for문을 사용하여 1에서 100까지 다음과 같은 순서로 출력하시오.
for문 실습
수열이 반복되서 - 붙여서 나오게
내풀이

쌤풀이1

쌤풀이2

ㅇ공백 넣는 법 : 자바에서는 " " 문자열을 이용해서
ㅇ 나중에 기초문법 끝나고 응용 서비스 만드는 걸로 가면 이런 거 할 겨를 없어!
어떻게 하면 코드를 효율적으로 짤까 고민할 기회 없으니까
그니까 할 수 있을 때 많이 사고해 봐!
<7교시>
ㅇ 규칙 찾기
ㅇ 규칙을 가로로 보는 게 좋아
컴퓨터는 가로로 출력하고
다음 줄로 내려가고 다음주로 출력하고
ㅇ
2단을 먼저 출력한다고 생각하고
디바이드 앤 컨쿼
작은 단위로 먼저 봐. 이걸 먼저 해결하고 그 담에 이거를 가지고 다른 걸 뭘 하는 게 좋을지
ㅇ
효율적으로 만들어질 수 있도록
ㅇ
그 안의 코드의 규칙들을 찾아서 계속 바꿔나가는
처음부터 최적의 코드를 짜야지보다는
일단 결과물을 만들어봐야지 하면 돼
그리고 나서 그 안에서 조금씩 최적화 하는 방법을 찾아가면 돼
결과물은 그대로 나오게 하지만 구조를 효율적으로 바꿔주는
그 방법으로 차근차근
2단을 출력해라
구체적으로 결과물을 만들겠지
"2단 : 21=2 22=4 23=6 24=8 "
이걸 좀 더 변환
이거를 잘게 잘게 쪼갠다고 생각해
21=2
22=4
이런 식으로 쪼개보면 2*뭐=값 이렇게
리팩토링의 핵심??은 실행결과가 바뀌면 안돼
2단은 1번만 출력하는데
밑에는 비슷한 구조의 문장패턴이 반복적으로 일어나고 있어 => 반복문
얘를 반복문 안에 집어넣으면 10번 프린트 할 걸 한 번 반복문으로 처리할 수 있어
2에서 출발해서 9까지 반복하는 걸 => for(int i=2; i<9; i++) 포문으로 처리
이때 달라지는 부분을 찾아내서 => 포매팅으로!! 오오!!


ㅇ
처음부터 효율적인 코드를 만들기는 어려워
이걸 계속 수정해서 최적화 하는 걸 연습하는 게 좋아
ㅇ
이제 여기에 3단을 추가하겠다 생각하면 돼
2단을 똑같이 붙여서 3으로만 바꿔주면 되겠지?!
2단과 3단 사이에 줄바꿈을 위해서
이렇게 3단 4단 5단... 이것도 반복이네?!
그러면 이 덩어리륿 ㅏㄴ복문안에 다시 집어넣음녀 돼
그리고 반복되는 부분을 새로 만든 변수 j로 바꿔




??? 놓쳤어
포문이 많아지면 많아질수록 머리로 생각하는 건 한계 있어
이걸 작은 단위로 분해해서 규칙을 찾아봐
이걸 연습해봐.
ㅇ 별 찍기 연습
방법 이미 알고 있지만
리팩토링 방법 이용해서 하나씩 하나씩 규칙 찾는 연습을 해보기
똑같은 문장이 반복적으로 일어나느 걸 찾아서
이제 다시 코드를 줄여나갈거야
포문 자동완성 배웠나???
ㅇ 알고리즘은 문제를 많이 풀어보고 응용해보고 ?? 해보는 게 중요해
처음부터 센스가 뛰어난 사람 아니면
꾸준히 풀어야 실력 늘 수 있어
꾸준히 안 하면 실력 떨어져
54321
대칭되게
안쪽에서
5개
5번부터 1이 될때까지 * 나오게 하면 돼
리팩토링
1 반복되는 것
별
5번
4번
3번
2번
1번 출력
for i를 5번 반복
<7교시>
리팩토링
5번 반복할건데
syso
빈칸0개
System.out.print("*"); 이거 10개
빈칸0개
빈칸1개
출력8개
빈칸1개
빈칸2개
출력6개
빈칸2개
빈칸3개
출력4개
빈칸3개
빈칸4개
출력2개
빈칸4개
for문 1에서 4까지
스타는 10에서
빈칸 4개
ㅇ 역피라미드 혼자 고민해보기
공백이거나 아무것도 안 들어간다는
ㅇ 역피라미드 숙제 고고