코드가 길어도 포함관계를 파악해서 잘라서 보는게 중요
코드의 논리적인 순서가 중요
반복문(for, while, do-while)에서 break를 만나면 break가 있는 위치에서 가장 가까운 포함된 반복문이 종료됩니다. 만약 중첩반복문에서 안쪽의 반복문에 break가 있다면 중첩반복문 전체가 종료되는게 아니라 안쪽 반복문만 종료되는거져 꼭 써야하는건 아니지만 break를 쓰면 코드가 명확하게 보이기 때문에 코드가 길어질수록 유용해요
두 개의 주사위가 같은 숫자가 나오면 종료
int count = 1; //횟수
while(true) {
double rX=Math.random();
double rY=Math.random();
int x=(int)(rX*6+1);
int y=(int)(rY*6+1);
System.out.println(count+"번째");
System.out.println("("+x+","+y+")");
if(x==y)
break;
count++;
}
sum = (1 + (-2) + 3 + (-4) + 5 + ... + n)
sum >= 100 일 때의 n과 sum값은?
1. n은 1씩 증가
2. 짝수는 음수
반복이 끝나는 범위를 모르니깐 while문 사용
int sum=0, n=1;
while(sum<=100) {
if(n%2==0) {
sum += -n;
}else {
sum += n;
}
if(sum>=100) {
System.out.println("n = "+n+", sum = "+sum);
break;
}
n++;
}
* ** *** **** ***** ***** **** *** ** *
아래쪽 삼각형은 j가 5번씩 반복하되 *이 없는 곳을 공백으로 채움
1. i가 2면 5개 중의 1개가 공백. 4개가 별. 1<2.
2. i가 3이면 5개 중의 2개가 공백. 3개가 별. 1<3, 2<3.
= j가 i보다 작으면 공백 출력
for(int i=1;i<=5;i++) {
for(int j=1;j<=i;j++) {
System.out.print("*");
}
System.out.println();
}
for(int i=1; i<=5; i++) {
for(int j=1; j<=5;j++) {
if(j<i) {
System.out.print(" ");
}else {
System.out.print("*");
}
}
System.out.println();
}
삼각형 두개가 겹쳐진 도형인데요 위의 삼각형은 어제 푼 codeup문제랑 똑같았고 문제는 아래쪽 삼각형이었습니다. 규칙을 찾아보려 이것저것 생각했는데 공백이 i-1이다! 근데 이걸 어떻게 조건으로 걸지? 라는 것에 계속 사로잡혀서 많이 애먹었어요ㅠㅠ
j>i를 발견한 건 조건을 이것저것 다 넣고빼고 하다가 도형이 완성된뒤에야 코드를 분석해본 것..ㅎ 분발하자😥 강사님께서 알려주신 다른방법은 i-j>0을 조건으로 하는 것! 여러가지가 있네용
정렬 알고리즘은 따로 공부해보기!
어려워도 좌절하지말좌💪💪