>
<
>=
<=
==
!=
: 대소비교, 값을 비교
&&
||
!
: 논리 연산자와 같이 사용하는 경우가 있다
형식
if( 조건 ) { -> 논리(true / false)
처리
}
예시
int number = 7;
if(number > 0) {
System.out.println("number는 0보다 큽니다");
}
if(number == 7) {
System.out.println("number는 7입니다");
}
if(number > 0 && number <= 10) { // 1 ~ 10
System.out.println("number는 0보다 크고 10보다 작거나 같습니다");
}
if(number > 0 || number <= 5) {
System.out.println("number는 0보다 크거나 5보다 작거나 같습니다");
}
// console
/*
number는 0보다 큽니다
number는 7입니다
number는 0보다 크고 10보다 작거나 같습니다
number는 0보다 크거나 5보다 작거나 같습니다
*/
// b == false -> !b
if(b == false) {
System.out.println("b == false 입니다");
}
if(!b) {
System.out.println("b == false 입니다");
}
// console
/*
b == false 입니다
b == false 입니다
*/
형식
if( 조건 ) {
처리1
}
else {
처리2
}
예시
int count = 8;
if(count < 6) {
System.out.println("count는 6보다 작습니다");
}
else {
System.out.println("count는 6보다 크거나 같습니다");
}
// 삼항연산자
String str = (count < 6) ? "count는 6보다 작습니다" : "count는 6보다 크거나 같습니다";
// console
// count는 6보다 크거나 같습니다
String str1 = "worl";
str1 = str1 + "d";
System.out.println("str1 = " + str1);
if(str1 == "world") {
System.out.println("str1은 world입니다");
} // -> false로 판단됨
// equals -> 정확하게 비교
if(str1.equals("world") == true) {
System.out.println("equals str1은 world입니다");
} // -> true로 판단됨
// console
// equals str1은 world입니다
형식
if( 조건 ) {
처리1
}
else if( 조건 ){
처리2
}
else if( 조건 ){
처리3
}
:
else { // -> 필수는 아님
처리n
}
예시
int count = 65;
if(count >= 90) {
System.out.println("A학점입니다");
}
else if(count >= 80) {
System.out.println("B학점입니다");
}
else if(count >= 70) {
System.out.println("C학점입니다");
}
else {
System.out.println("재시험입니다");
}
// console
// 재시험입니다
// if안에 if문
count = 95;
if(count >= 90) {
if(count >= 95) {
System.out.println("A+ 입니다");
}
else {
System.out.println("A 입니다");
}
}
if(count >= 90 && count <= 100) {
System.out.println("A+ 입니다");
}
else if(count >= 90 && count < 95) {
System.out.println("A 입니다");
}
// console
// A+ 입니다 -> 둘 다 같은 결과를 출력
- 조건 분기 제어문
- 값이 명확해야 한다
- 범위를 설정할 수 없다
- 소수(실수)값을 사용할 수 없다
형식
switch( 변수 ) {
case 1: // 1 == 값 -> if(변수 == 1)과 같음
처리1
break;
case 2:
처리2
break;
:
case n:
처리n
break;
default: // else
해당되는 값이 없을 시에 실행
생략 가능
}
예시
int choice;
choice = 3;
switch(choice) {
case 1:
System.out.println("처리1 입니다.")
break;
case 2:
System.out.println("처리2 입니다.")
break;
case 3:
System.out.println("처리3 입니다.")
break;
default:
System.out.println("1 ~ 3이 아닙니다.")
}
// console
// 처리3 입니다
원할 때까지(조건이 참) 반복처리하는 제어문
형식
for( 초기화; 조건식; 연산식) {
처리
}
예시
int i;
for(i = 0; i < 5; i++) {
System.out.print("for loop i = " + i);
}
// console
// 01234
// 2중 for
for(int n = 0; n < 3; n++) { // n = 0 1 2
System.out.println("for loop n = " + n);
for(int k = 0; k < 2; k++) {
System.out.print("\tfor loop k = " + k)
}
}
// console
/*
for loop n = 0
for loop k = 0
for loop k = 1
for loop n = 1
for loop k = 0
for loop k = 1
for loop n = 2
for loop k = 0
for loop k = 1
*/
응용 (while + if + array)
int array[] = { 2, 3, 5, 6, 8};
int i;
for(i = 0; i < array.length; i++) {
System.out.print(array[i]);
}
for(i = 0; i < array.length; i++) {
if(array[i] == 5) {
System.out.println("5를 찾았습니다");
}
}
for(i = 0; i < array.length; i++) {
if(array[i] % 2 == 1) {
System.out.println("홀수가 있습니다. " + array[i] + "입니다." );
}
}
// console
/*
23568
5를 찾았습니다
홀수가 있습니다. 3입니다.
홀수가 있습니다. 5입니다.
*/
형식
초기화
while( 조건식 ) {
처리
연산식
}
예시
int w;
w = 0; // 초기화
while(w < 5) {
System.out.println("while loop " + w);
w++; // 연산식
}
// 2중 while
int w1, w2;
w1 = 0;
while(w1 < 4) {
System.out.println("w1 = " + w1);
w2 = 0;
while(w2 < 3) {
System.out.println("\tw2 = " + w2);
w2++;
}
w1++;
}
// console
/*
w1 = 0
w2 = 0
w2 = 1
w2 = 2
w1 = 1
w2 = 0
w2 = 1
w2 = 2
w1 = 2
w2 = 0
w2 = 1
w2 = 2
w1 = 3
w2 = 0
w2 = 1
w2 = 2
*/
응용 (while + if + array)
int array[] = { 2, 3, 5, 6, 8 }
int i;
i = 0;
while(i < array.length) {
System.out.print(array[i]);
i++;
}
i = 0;
while(i < array.length) {
if(array[i] == 5) {
System.out.print("5를 찾았습니다");
}
i++;
}
i = 0;
while(i < array.length) {
if(array[i] % 2 == 1) {
System.out.print("홀수가 있습니다. " + array[i] + "입니다." );
}
i++;
}
// console
/*
23568
5를 찾았습니다
홀수가 있습니다. 3입니다.
홀수가 있습니다. 5입니다.
*/
형식
do{
처리
연산식
} while( 조건식 );
예시
int w3;
w3 = 0; // w3 = 5일 경우, 조건에 충족하지는 못하나 한 번 처리됨.
// -> console에 do while w3 = 5가 출력됨
do{
System.out.println("do while w3 = " + w3);
w3++;
} while(w3 < 5);
// console
/*
do while w3 = 0;
do while w3 = 1;
do while w3 = 2;
do while w3 = 3;
do while w3 = 4;
*/
loop정지 -> escape
loop문과 같이 사용한다(for, while, do while, switch)
형식
// for문에서 사용
for(int i = 0; i < 10; i++) {
처리1
if(조건) {
break;
}
처리2
}
// while문에서 사용
w = 0;
while(w < 10) {
if(조건) {
break;
}
w++;
}
예시
for(int i = 0; i < 10; i++) {
System.out.println("for loop " + i);
if(i == 3) {
System.out.println("i는 3입니다);
break;
}
}
// console
/*
for loop 0
for loop 1
for loop 2
i는 3입니다
*/
int number[] = {11, 22, -15, 45}
for(int i = 0; i < number.length; i++) {
System.out.println("number[" + i + "] = " + number[i]);
if(number[i] < 0) {
break;
}
}
// console
/*
number[0] = 11
number[1] = 22
number[2] = -15 -----> 출력문이 위에 있기 때문에 출력 후 탈출
*/
2중 for문에서의 break사용
- loop문 수에 맞춰서 break를 설정
- break 설정
// 1. loop문 수에 맞춰서 break를 설정
boolean b = false;
for(int i = 0; i < 10; i++) {
System.out.println("i = " + i);
for(int j = 0; j < 8; j++) {
System.out.println("\tj = " + j);
if(i == 5 && j == 4) {
b = true;
}
if(b) {
break;
}
}
if(b) {
break;
}
}