Study📚/Java

자바 - 조건문과 반복문

woo!na 2023. 9. 25. 23:03

1. 조건연산자 (삼항 연산자)

피연산자 ? 피연산자 : 피연산자 (1항 ? 2항 : 3항)

1항의 결과가 true : 2항 수행

1항의 결과가 false : 3항 수행

int n = Integer.parseInt(br.readLine());
String result = n%2==0 ? "짝수" : "홀수";

// 삼항연산자 중첩 가능
String result2 = n%2!=0 ? "홀수" : n!=0 ? "짝수" : "영";

2. if ~ else 문

if문은 가장 기본적인 조건문으로 if의 조건식이 true일 경우 특정 문장을 수행한다.

자바에서 조건식의 결과는 반드시 true 혹은 false 이어야 한다.

int n = Integer.parseInt(br.readLine());

if (n%2!=0)
	// 입력받은 n을 대입한 조건식이 참이라면 홀수 출력
	System.out.print("홀수");
    
else if (n%2==0 && n!=0)
	// 나머지가 0이고 n은 0이 아닐 때(조건식이 true) 짝수 출력
	System.out.print("짝수");
else
	// 그 외의 모든 경우에는 영 출력
	System.out.print("영");

{블럭} 안에 한 문장이면 블레이스(괄호) 생략 가능.

모든 if문이 else문으로 끝나야 하는 것은 아니지만, else System.out.print("판독 불가"); 등의 처리를 넣는 것을 권장한...~? 권장 받았다.

 

당연히 if문도 중첩이 가능하다.

if (n%2!=0)
{
	result = "홀수";
}
else if (n%2==0)
{
	if (n!=0)
    {
    	result = "짝수";
    }
    else
    {
    	result = "영";
    }
}

 

3. switch 문

if문은 조건식의 결과가 true / false 두 가지 밖에 없기 때문에 경우의 수가 많은 상황에선 switch문이 간편하다. if문과 다른 점은 결과와 일치한 case 문을 수행한 후 그 밑에 있는 문장들을 수행하기 때문에 경우에 따라 break문을 사용해야한다. switch도 중첩이 가능하다.

switch 문의 수식과 case의 상수는 byte, short, int, long (+char, String) 타입이어야 하며 if 문의 else와 같은 default 문이 있다.

int score = 90;
char grade;

switch(score/10)
{
	// case 는 한 줄에 붙여 써도 괜찮다.
    case 10 : case 9 : grade = 'A'; break;
    case 8 : grade = 'B'; break;
    case 7 : grade = 'C'; break;
    case 6 : grade = 'D'; break;
    default : grade = 'F'
}

break를 쓰지 않는 경우는 예를 들어 사용자의 등급에 따라 권한을 부여할 때 break 없이 설계 할 수 있다.

switch (userLevel)
{
	case 3 : delete();	// 유저의 권한이 가장 높으면 삭제 ~ 읽기까지 모두
    case 2 : write();
    case 1 : read();	// 유저의 권환이 가장 낮으면 읽기만
}

 

4. while 문

조건식을 먼저 비교하여 조건식의 결과가 참(true)인 경우 특정 영역을 수행. 언제까지? 조건식이 false 가 될 때 까지

즉, 무한대로 반복 할 수도 있고 한 번도 실행되지 않을 수 있다.

boolean temp = false;

while (temp)
{
	// while의 조건식이 false이기 때문에 한 번도 실행되지 않는다.
}

int n=1;
int sum=0;

while (n<=100)
{
	sum+=n;
    n++;
}

반복문 속에 조건문 가능

int n=1;
num=1;	// 누적곱은 누적합과 다르게 1로 초기화

while (n<=100)
{
	if (n%2==0)
    	num*=n;
        
    if (n==99)
    	break;	// break는 일단 멈추고 탈출. if문을 탈출하는 것이 아니라
        		// 가장 가까운 반복문 탈출
    n++;
}

 

5. do ~ while 문

do ~ while 문은 while 문과 마찬가지로 특정한 영역을 반복하지만, 조건식에 대한 검사를 반복문을 1회 수행한 이후에 검사한다.

즉, do ~ while 문은 반드시 한 번은 수행하게 된다.

int n;
do
{
	System.out.print("n 값을 입력하세요 (1 ~ 10 사이) : ");
	n = sc.nextInt();
}
while (n<0 || n>10)
//    ----------- true인 동안 계속 반복. 즉, n이 0보다 작거나 10보다 큰 경우 계속해서 반복한다.
//                                   -> 1 ~ 10 사이의 값을 입력할때까지 반복

 

6. for 문

for 문은 정해진 횟수만큼 반복해야 하는 경우에 유용하며 루프 변수의 초기값, 조건식, 증감식 등을 한 지점에서 확인 할 수 있기 때문에 가독성이 높은 반복문에 해당한다.

int sum =0;

for(int i=1;i<=10;i++)
{
	sum+=i;
}

for문도 중첩 가능 = 다중 for 문

for (int i=1;i<=9;i++)
{
	for (int j=1; j<=9; j++)
    {
    	System.out.printf("%d * %d = %d\n",i,j,i*j);
    }
}

'Study📚 > Java' 카테고리의 다른 글

자바 - Scanner 의 nextInt() 사용시 try ~ catch 무한반복  (0) 2023.10.18
자바 - 반복문 연습(별 찍기)  (0) 2023.09.26
자바 - 입출력  (0) 2023.09.25
자바 - 변수(variable)  (0) 2023.09.24
자바 - 생성자(Constructor)  (1) 2023.09.13