study/Java

[sist] 2024.01.04_Java : 조건문-switch~case, 반복문-for문, continue

듀2 2024. 2. 3. 14:43

* switch ~ case

- 일치하는 정수(byte, short, int, char)를 비교하기 위해서 만들어진 조건문.

- OpenJDK7 (JDK1.7) 버전에서는 "문자열(String)"을 비교할 수 있는 기능이 제공.

- 동작: 입력되는 변수와 일치하는 상수(정수 상수가 정의: 입력되는 변수의 범위로만 사용)를 찾고, 그 아래 모든 case를 수행한다.

- 그 아래에 존재하는 case의 실행을 막을 때에는 break를 사용한다.

(*break 분기문: switch ~case, for, while을 빠져나갈 때)

 

문법)

switch(변수명){
    case 상수 : 수행될 문장들 ... ;
    case 상수 : 수행될 문장들 ... ; break;	// break는 상황에 따라 기술
    	.
        .
    default : 일치하는 상수가 없을 때 실행될 코드들;
}

 

흐름)

int i = 1;
switch(i) {
    case 0 : System.out.println("영");
    case 1 : System.out.println("일");
    case 2 : System.out.println("이");
    default : System.out.println("case 없음.");
}

- switch에 변수는 byte, short, int, char, String

- case의 상수는 입력되는 switch 변수의 범위로만 선언할 수 있다. byte가 들어가면 -128 ~ +127까지 가능.

- 가급적이면 Constant를 사용하여 처리(가독성 향상)

 


* looping (반복문)

- 코드를 여러 번 반복 실행해야 할 때.

- for, while, do ~ while

 

* for문)

- 시작과 끝을 알 때 사용.

- 단일 for, 다중 for를 사용할 수 있다.

- for문이 어렵다는 건 귀찮다는 뜻이다!

 

문법)

for(초기값 ; 조건식 ; 증.감소식){
    반복수행될 문장들...
}

 

- main method에서 처음 입력된 값(args[0])이 구구단의 범위였을 때(2~9) 해당 단의 구구단을 출력(1에서부터 9까지 입력된 값을 곱함 -> 반복의 요소 => for, while, do~while)하는 코드 작성. => 흐름!

 

- 1에서부터 100까지의 합을 구하기 위한 코드 작성.

 


* 다중 for

- for문 안에 for문을 정의하는 것.

 

문법)

for(초기값 ; 조건식 ; 증.감소식){
    // 단일 for 영역
	for(초기값 ; 조건식 ; 증.감소식){
    	// 다중 for 영역
	}
    // 단일 for 영역
}

 -> 바깥 for가 한 번 반복할 때, 안쪽 for는 몇 번을 반복하는가?

 

* 구구단

 

단 * 수 = 결과

2 * 1    3 * 1      ~      9 * 1

   ~         ~         ~         ~

2 * 9   3 * 9      ~      9 * 9

 

바깥 for(단)가 한 번 돌 때 안쪽 for(곱해지는 수)는 9번 돈다.

 

for(int i = 2; i < 10; i++){
    for(int j = 1; j < 10; j++){
    	System.out.prinln(i + "*" + j + "=" + i*j);
    }
}

 


* for의 다양한 형태

* 무한 루프(종료되지 않아야 하는 프로그램을 제작해야 할 때): 시계, 운영체제, 서버 등

 

문법)

- 증가하는 수를 세는 무한루프

for(초기값;  ; 증.감소식){
}

 

- 증가하는 수를 세지 않는 무한루프

for( ; ; ) {
}

 

- 무한루프 아래 라인에 코드를 정의하면 실행될 수 없기 때문에 에러가 발생한다.

 

* 여러 개의 초기값을 가지는 for

- 주의: 조건식은 하나만 설정.

문법)

for(초기값,,,; 조건식; 증감.소식,,,){
}
for(int i = 0, j = -10, k = 100; i < 10; i++, j--, k*=2){
    // 변수선언을 여러개 하듯이 초기화 선언을 할 수 있다.
    // 모든 변수를 증.감할 필요는 없고 조건에 사용하는 변수만 필수로 한다.
}

 


* continue

- 반복문 안에서 반복문의 실행을 건너 뛰는 일. (건너 뛰고 증.감소식으로 이동)

- 반복문 안에서 if로 조건을 부여하고 사용한다.

 

사용법)

for(초기값; 조건식; 증.감소식){
    반복수행 문장들...
    if(조건){	// 아래의 반복을 수행하지 않는 동작
    	continue;	// 조건에 맞으면 아래의 반복문장을 수행하지 않고 증.감소식으로 이동한다.
    }
    반복수행 문장들...
}
728x90