파이썬에서 배웠던 if 조건문과 형태가 무척 비슷하지만 조금씩 다른 자바.
다른 것보다 눈에 익혀두는 것이 시간이 걸릴 것 같아요 ^^ㅠ
● 자바의 if 조건문 알아볼게요.
if (ture or false) { -> 불리언 데이터가 들어가거나 불리언 값이 나오는 조건문
조건 true 시 실행되는 영역
}
package day12;
public class if_ex {
public static void main(String[] args) {
// 조건 : 불리언 표현식
int age = 24;
if(age <= 20) {
System.out.println("미성년자");
}
else {
System.out.println("성년");
}
}
}
● if문에 속한 문장이 하나일 경우 중괄호는 생략 가능합니다.
(but, 중괄호 생략은 안하는 것을 권장합니다. 차후 조건문이 길어지거나 코드가 복잡해질 경우 혼란할 수 있기 때문에.)
package day12;
public class if_ex {
public static void main(String[] args) {
// 조건 : 불리언 표현식
int age = 24;
if(age <= 20)
System.out.println("미성년자");
else
System.out.println("성년");
}
}
● if 조건문을 추가할 때 파이썬에서는 elif 를 썼다면 자바에서는 풀네임 그대로
else if 로 사용합니다. 몇 개를 추가해도 동일하게 조건문의 역할을 합니다.
package day12;
public class if_ex {
public static void main(String[] args) {
// 조건 : 불리언 표현식
int age = 6;
if(age > 20)
System.out.println("성년");
else if(age > 10)
System.out.println("청소년");
else if(age > 5)
System.out.println("어린이");
else
System.out.println("아기");
}
}
여기까지는 자바와 파이썬은 큰 차이가 없는 것 같습니다..
자바에는 조건문의 형식으로 하나가 더 삼항 연산식이 있습니다.
조건 ? 수1 : 수2
(조건이 참인지 거짓인지) ? 참일 경우 반환 : 거짓일 경우 반환
ex) big (num1 > num2) ? num1 : num2
num1 이 num2 보다 클 경우 num1 을 반환하고 그렇지 않을 경우 num2 를 반환한다.
package day12;
public class if_ex {
public static void main(String[] args) {
// 삼항 연산자 (연산식) : 주어진 조건에 따른 값 반환
// 조건 ? 항1 : 항2
int age = 18;
// (if가 아니라 조건만 적습니다.)
boolean result = age <= 20 ? true : false;
// 불리언을 선언해주고 result 변수에 true 값을 저장합니다.
String resultS = age <= 20 ? "미성년자" : "성인";
// 문자열을 선언해주고 result 변수에 "미성년자" 의 값을 저장합니다.
System.out.println(result);
System.out.println(resultS);
}
}
● if 조건문을 활용해서 과일바구니 문제를 같이 풀어볼게요.
과일을 10개씩 담을 수 있는 바구니가 몇 개 필요한지 구하는 문제입니다.
과일의 개수가 정해지면 그에 따른 바구니 개수가 나오도록 계산합니다.
예) 사과가 123개 일 때, 필요한 바구니는 13개
(12개의 바구니에 10개씩 담고 3개가 남으면 그것도 하나의 바구니에 담아야 하므로)
예) 사과가 18개 일 때, 필요한 바구니는 2개
package day12;
/*
* 과일을 10개씩 담을 수 있는 바구니가 몇 개 필요한지 구하기
* 과일의 개수가 정해지면 그에 따른 바구니 개수가 나오도록 계산하자
*
* 예) 사과가 123개 일 때, 필요한 바구니는 13개
* 예) 사과가 18개 일 때, 필요한 바구니는 2개
*/
public class Quiz01 {
public static void main(String[] args) {
int numOfApple = 127;
int numOfBucket;
int fullBucket = numOfApple / 10 ; // 딱 10으로 나눈 몫
int notFullBucket = numOfApple % 10 > 0 ? 1 : 0 ;
numOfBucket = fullBucket + notFullBucket;
System.out.println("필요한 바구니 수는 " + numOfBucket + "개 입니다.");
}
}
int numOfApple = 127; -> 과일의 갯수를 numOfApple 에 저장합니다.
int numOfBucket; -> 바구니의 갯수는 정해지지 않았으므로 numOfBucket 은 선언하지 않고 빈 값으로 둡니다.
int fullBucket = numOfApple / 10 ; -> 자바에서 나눗셈을 하면 소숫점 이하는 버리고 몫만 취합니다.
총 사과의 갯수를 10으로 나눈 몫을 가득찬 바구니 fullBucket 에 저장합니다.
int notFullBucket = numOfApple % 10 > 0 ? 1 : 0 ; -> 10개로 담아지지 못하고 남은 사과들을 덜 찬 바구니 notFullBucket 에 저장합니다. 사칙연산 % 부호는 나눗셈을 한 뒤 나머지 값을 구합니다.
과일의 갯수를 총 10개로 나눈 뒤 나머지의 값이 0 이상인가? (조건문)
True 의 경우 (0 이상일 경우) : 0 이상 10미만 (10이라면 나누어졌으므로) 의 갯수라면 바구니를 1개가 추가되므로 1을 저장합니다.
False 의 경우 (0일 경우) 0일 경우에 바구니는 추가하지 않아도 되므로 0 을 저장합니다.
numOfBucket = fullBucket + notFullBucket; -> 꽉 찬 바구니와 덜 찬 바구니의 총 갯수를 더하면 바구니의 수가 나옵니다..
System.out.println("필요한 바구니 수는 " + numOfBucket + "개 입니다.");
}
}
● switch문은 선택제어문의 성격을 가지고 있습니다.
switch문으로 case 조건 값이 어떤 것인지에 대한 경우의 수를 나열할 수 있습니다.
if 처럼 True False 가 아니라 값에 따라서 경우의 수를 나눕니다.
경우의 수에 해당이 되면 해당된 case 부터 하단의 모든 case 를 출력합니다.
ex) n이 1이면 case 1 부터 실행
2이면 case 2부터 실행
package day12;
public class Test03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 조건 값 : 정수, 문자 그리고 문자열 중 어떤 값
int condition = 1;
switch(condition) {
case 1 : // 주어진 조건 값이 1인 경우 여기서'부터' 실행
System.out.println("1입니다.");
case 2 : // 주어진 조건 값이 2인 경우 여기서'부터' 실행
System.out.println("2입니다.");
case 10 : // 주어진 조건 값이 10인 경우 여기를 실행
System.out.println("10입니다.");
// 케이스가 시작되는 부분부터 끝까지 전부 실행
}
}
}
switch 문이 끝까지 실행되는 것을 막기 위해서는 break문을 실행해야 합니다.
break 문이 실행되면 switch 문을 빠져나갑니다.
package day12;
public class Test03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 조건 값 : 정수, 문자 그리고 문자열 중 어떤 값
int condition = 1
;
switch(condition) {
case 1 :
System.out.println("1입니다.");
break;
case 2 :
System.out.println("2입니다.");
break;
case 10 :
System.out.println("10입니다.");
break;
// 의도적으로 멈추고 싶을 때 break를 입력합니다.
}
}
}
만약 입력한 값이 case에 모두 해당하지 않을 경우 출력하기 위한 고정값으로
default를 사용합니다. 이것은 case에 해당되는 값이 있어도 출력을 합니다. 단, break가 있으면 출력되지 않습니다.
package day12;
public class Test03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 조건 값 : 정수, 문자 그리고 문자열 중 어떤 값
int condition = 2
;
switch(condition) {
case 1 :
System.out.println("1입니다.");
case 2 :
System.out.println("2입니다.");
case 10 :
System.out.println("10입니다.");
default : // case에 해당하지 않는 경우 나머지 case는 이것으로.
System.out.println("case 가 없습니다.");
}
}
}
여기까지 확인을 했으니 다음 공부는 오후에 이어서 하겠습니당
'자바 > 자바 입문 공부일지' 카테고리의 다른 글
자바 기초 공부 일지 9. 메소드 method (0) | 2022.10.26 |
---|---|
자바 기초 공부 일지 8. 반복문 while문, for문, break와 continue, 중첩 반복문 (0) | 2022.10.25 |
자바 기초 공부 일지 6. 기본 연산자 (0) | 2022.10.25 |
자바 기초 공부 일지 5. 상수 (리터럴), 자료형 변환 (0) | 2022.10.24 |
자바 기초 공부 일지 4. 자료형 (정수형, 문자형) (258) | 2022.10.24 |