반복문 / 제어문 생각할 점
1.조건을 지정한다. 어떻게 조건을 지정해야할까?
2.인덱스를 쓸거냐 안쓸거냐에 따라 while문을 쓸지 for문을 쓸지 결정한다. 그리고 인덱스의 범위에 주의한다.
3.상태유지를 할거냐 안할거냐(저장변수필요)를 결정한다.
4.제어의 흐름을 어떻게 제어 할 것인가
1.break문과 continue문 문제풀이
1.1 두개의 상태변수
// 문제 4) 파일에서 성적을 읽다가 '두 번째 100 이후의 성적'을 모두 출력하시오. (100점 미포함)
// 조건은 두 개다. 100을 넘어야 하고 두 번째 100이어야 한다.
for(int count=0; fscan.hasNext();) { // 카운트 변수를 선언해서 상태변화를 표시했다.
String word = fscan.next();
int kor = Integer.parseInt(word);
if(kor==100)
count++;
if(count < 2 || kor ==100)
continue;
System.out.printf("%d,", kor);
}
이렇게 보면 코드가 쉬워보이지만, 이런 코드를 생각하기가 쉽지가 않았다. 상태변화가 두 개이니 변수를 두 개 선언할 생각이였는데 count변수 하나로 퉁 칠 수 있다니 발상이 독특하다.
1.2 continue문과 break의 동시사용
for(int i=0; fscan.hasNext(); i++) {
String word = fscan.next();
int kor = Integer.parseInt(word);
if (i<4)
continue;
if(i==8)
break;
System.out.printf("%d," ,kor);
}
2.중첩 for문
2.1 else if
for(int j=0; j<10; j++) {
for(int i=0; i<10; i++) {
if(i==2)
System.out.print("a ");
else if(i==5)
System.out.print("b ");
else if(i==9)
System.out.print("c ");
else
System.out.printf("%d ", i+1); //기본값
}
System.out.println();
}
else if문에서 else는 기본값 else if는 특정조건 값이다.
두 값을 비교해보자. 두 값을 비교하면, else기본 값과 else if 특정 조건값을 이해할 수 있다.
for(int i=0; i<3; i++) {
if(i==1)
System.out.println("b ");
if(i==1)
System.out.println("a ");
else
System.out.println("c ");
}
for(int i=0; i<3; i++) {
if(i==1)
System.out.println("a ");
else
System.out.println("c ");
if(i==1)
System.out.println("b ");
}
앞의 코드는 결과값이 'c,b,a,c'순으로 나오지만, 뒤의 코드는 'c,a,b,c' 순으로 결과값이 나온다. 표면상으로는 같은 코드를 입력했지만, else 이하의 코드는 기본 값이고 매번 조건에 상관없이 출력되기 때문에 순서가 바뀐 결과값이 나온다.
이를 제대로 이해했다면, 오목만들기 프로그램도 만들 수 있다!
public class OmokProgram {
public static void main(String[] args) {
// 전략 모든 경우의수를 구해주고 특수한 경우를 가장 먼저 보편적인 경우를 가장 나중에 세워준다.
for(int j=0;j<10;j++) {
for(int i=0;i<10;i++) {
if(j==0&&i==0)
System.out.print("┌");
else if(j==0&&i==9)
System.out.print("┐");
else if(j==9&&i==0)
System.out.print("└");
else if(j==9&&i==9)
System.out.print("┘");
else if(j==0)
System.out.print("┬");
else if(j==9)
System.out.print("┴");
else
System.out.print("┼");
}
System.out.println();
}
}
}
'뉴렉처 > 자바' 카테고리의 다른 글
[뉴렉처/자바] ★배열 2023.06.21 (0) | 2023.06.21 |
---|---|
[뉴렉처/자바] ★반복문과 제어문 2023.06.20 (0) | 2023.06.20 |
[뉴렉처/자바]★반복문과 제어문 2023.06.19 (1) | 2023.06.19 |
[뉴렉처/자바] ★반복문과 제어문 2023.06.15 (0) | 2023.06.15 |
[뉴렉처/자바] ★반복문과 제어문 2023.06.14 (0) | 2023.06.14 |