관리 메뉴

너와 나의 스토리

[Java 기초부터 다시] 3. 조건문과 반복문 본문

Programming Language/Java

[Java 기초부터 다시] 3. 조건문과 반복문

노는게제일좋아! 2021. 4. 4. 23:16
반응형

1. if문

if(조건식){
	// ...
} else {
	// ...
}

 

2. switch문

public class SwitchExample {
	int num = (int)(Math.random()*4) + 1;
    
	switch(num){
    	case 1:
        	// ...
            break;
    	case 2:
        	// ...
            break;
    	case 3:
        	// ...
            break;
    	default:
        	// ...
            break;            
	}
}
  • Math.random(): [0.0, 1.0] 사이에 속하는 double 타입의 난수를 리턴한다.
  • switch(변수)의 변수에 해당하는 case가 실행되고, 변수 값이 case에 없으면 default 부분이 실행된다.
  • break;를 작성해주지 않으면 해당 case부터 하위 코드가 모두 실행된다.

 

3. for문

for(int i=1; i<10;i++){
	// ...
}
  • 초기화식이 필요 없을 경우 다음과 같이 생략할 수 있다.
int i =1;
for(; i<10;i++){
	// ...
}
  • 초기화식이나 증감식이 여러 개인 경우다 아래와 같이 작성할 수 있다.
for(int i=1, j=100; i<=50 && j>=50; i++, j--){
	// ...
}

 

4. while문

int i = 1;

while(i<10){
	i++;
}
  • do-while 문
    • 일단 do{}부분이 수행되고, while(조건)에 작성된 조건에 적합하면 계속해서 반복하는 구조이다.
    • 예시: 키보드로 입력을 받아 종료 문자('q')가 아니면 계속해서 입력을 받는다.
Scanner scanner = new Scanner(System.in);
String inputString;

do {
  System.out.print(">");
  inputString = scanner.nextLine(); // 키보드로 입력한 문자열을 얻음
  System.out.println(inputString);
} while(!inputString.equals("q");

 

5. break문

  • break문은 가장 가까운 반복문만을 종료시킨다.
  • 위에 do-while문의 예시에서 작성된 코드를 break문을 이용해 다음과 같이 수정할 수 있다.
Scanner scanner = new Scanner(System.in);
String inputString;

while(true) {
  System.out.print(">");
  inputString = scanner.nextLine(); // 키보드로 입력한 문자열을 얻음
  System.out.println(inputString);
  
  if(inputString.equals("q"){
  	break;
  }
}
  • 중첩된 반복문에서 바깥쪽 반복문까지 종료시키려면 라벨을 붙여주면 된다.
  • 아래 예시를 보자. 
    • 라벨이 없다면 lower가 'g'일 때, 안쪽 반복문에서만 벗어나게 되지만, 이 경우에는 Outter 표시가 되어있는 바깥쪽 반복문까지 빠져나오게 된다.
Outter:for(char upper='A'; upper<='Z'; upper++){
  for(char lower='a'; lower<='z'; lower++){
    System.out.println(upper + '-' + lower);
    if(lower=='g'){
    	break Outter;	
    }
  }
}

 

6. continue문

  • continue;를 만나면 해당 반복문의 처음으로 돌아간다. (초기화식은 계속 증가)
  • 아래 예시를 보자.
    • upper가 'A'일 경우 continue;를 만난다.
    • 이 경우 처음 부분으로 돌아가므로 'A'는 출력되지 않는다.
    • 'B' 이후부터는 if문에 해당되지 않으므로 값을 출력하게 된다.
for(char upper='A'; upper<='Z'; upper++){
  if(upper == 'A'){
  	continue;
  }
  System.out.println(upper);
}

 

반응형
Comments