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 |