if문

 

switch - case 조건문

switch - case문은 if - else문과 비슷한 조건 제어문이다.

하지만 switch문은 if문처럼 조건식이 true일 경우에 실행문을 실행하는 것이 아닌

변수의 값에 따라 실행문이 선택된다.

 

조건식의 변수의 값에 따라 해당  case위치로 이동해서 break를 만날 때 까지 코드를 실행한다.

 

if문은 조건식의 결과가 true, false 두 가지밖에 없기 때문에 경우의 수가 많아질수록 else - if를 반복적으로 추가해줘야하는 반면에 switch문은 변수의 값에 따라서 실행문이 결정되기 때문에 if문보다 간결하게 코드를 작성할 수 있다.

 

switch (조건식) {

 case 값 1:
  실행문1;
   break;

 case 값 2:
  실행문2;
   break;

 ...
 ...

 default:
  실행문;

}

 

default는 조건식이 모든 case가 아닐때 실행한다.

 

 


 

case에 사용 가능한 변수 타입

  • 정수 : byte, short, int, long, char
  • 문자열 :  String 
  • 열거형 자료 타입(enum)

 

정수를 사용한 swtich문 

int n = 17;

switch (n % 2) { 

case 0:

System.out.println("짝수");

break;

case 1:

System.out.println("홀수");

break;

}

실행 결과 =

홀수

 

*switch문에서는 실수 float, double을 사용할 수 없다.

double x = 1.0;

switch (x) {

case 1.0:

break;

case 2.0:

break;

 

 

문자열을 사용한 swtich문 

String time = "점심";

 

switch (time) {

case "아침":

System.out.println("breakfast");

break;

case "점심":

System.out.println("lunch");

break;

case "저녁":

System.out.println("dinner");

break;

default:

System.out.println("snack");

}

실행 결과 =

lunch

 

*switch문에서는 boolean(==)을 사용할 수 없다.

 

 

enum 타입을 사용한 switch문

열거형 자료 타입인 enum(enumeration type)은 한정된 값(상수)들만 갖는 데이터 타입이다.

public enum Season {

SPRING, SUMMER, FALL, WINTER;

}

이런식으로 개발자가 정의하여 타입을 만든 것이 enum이다.

 

Season s = Season.WINTER;

switch (s) {

case SPRING:

System.out.println("봄");

break;

case SUMMER:

System.out.println("여름");

break;

case FALL:

System.out.println("가을");

break;

case WINTER:

System.out.println("겨울");

break; 

(enum은 따로 정리를 할 예정이다.)

 

3 6 9 프로그램 만들기

 

1~100까지 3, 6, 9가 들어가는 경우 "*" 출력하고,

10의 배수인 경우 줄 바꿈 해준다.

3, 6, 9 가 1의 자릿수 와 10의 자릿수에 동시에 들어가면 "**" 을 출력한다.                                                                         

 

 

내가 작성한 코드

(실행결과는 맞게 나오지만 너무 억지스러운 코드...)

3, 6, 9 가 1의 자릿수 와 10의 자릿수에 동시에 들어갈때 "**"으로 출력되게 하려고 했는데,

n == 33 | n == 36 ... 이렇게 해보니 결과가 맞게 나오지 않아서

위처럼 했는데 맞는 결과가 나오긴했다...                                                             

 

 

int n1 = n % 10; 

n을 10으로 나눈 나머지

 

int n10 = n / 10;

n을 10으로 나눈 몫

 

condition1 = 1의 자리가 3 이거나 6이거나 9이면 true

condition2 = 10의 의 자리가 3이거나 6이거나 9이면 true

 

condition1 과 condition2이 둘다 참이면 "**" 출력

condition1이 참이거나 condition2 이 참이면 "*" 출력 

아니면 숫자 그대로 출력

 

만약 n을 10으로 나눈 나머지가 0이면 (10의 배수이면)  줄바꿈

 

 

실행결과

구구단 2단 만들어보기

 

System.out.printf(문자열 템플릿/포맷, 템플릿을 채울 값들); 채우는 값은 무조건 순서대로 작성해주기.

%d : 정수

%f : 실수

%s : 문자열

\n : 줄바꿈(new line)

\t : 탭(tap)

 

실행결과


정수 1부터 100까지 출력. 10단위로 줄바꿈.

 

반복문 조건식 : 1부터 100까지 반복. 반복할 때 마다 탭(tap)

조건문 조건식 : n을 10으로 나눈 나머지가 0인 지, 아닌 지 -> 0이면 줄바꿈 -> 0이 아니면 for문으로 다시 올라가서 반복.

 

 

실행결과

 

if문

 

조건식의 결과가 true, false이냐에 따라 실행문이 결정된다.

조건식이 true이면 블록을 실행하고, false이면 블록을 빠져나간다.

 

 

 

 

 

if-else문

 

 

 

 

조건식의 결과가 true이면 if문의 블록이 실행되고,

조건식의 결과가 false이면 else문의 블록이 실행된다.

 

 

if-else if-else문

 

 

 

 

 

조건문이 여러개인 if문이다.

처음 if문의 결과가 false일 경우 그 다음의 else if문의 블록이 실행되고, 또 false일 경우 그 다음의 else if를 실행한다.

만약 모든 조건식이 false일 경우 esle 블록을 실행한 후 if문이 종료되어 if문에서 빠져나간다.

 

 

실행결과

중첩 조건문

중첩 조건문은 if 블록 또는 else 블록 안에서 조건문을 다시 한번 작성하는 것이다.

실행결과

 

 

 

+ Recent posts