if
if (condition is true) {
do something
}
// ( ) 안에는 boolean 값이 들어가게된다. 참인지 거짓인지에 해당하는 값
else
if문의 조건이 거짓일 경우 동작
if (condition is true) {
do something
} else {
do something
}
public class IfHungry {
public static void main(String[] args) {
int money = 700;
if (money >= 800) {
System.out.println("빵 맛있어 ! ");
} else {
System.out.println("돈이 모자라요 ㅠㅠ ");
}
}
}
else if
if (condition is true) {
do something
} else if (another condition) {
do something
} else {
do something
}
✔︎ 조건문들의 중괄호 블럭들은 모두 서로 배타적이기 때문에 한가지만 실행할 수 있다. (즉, 구문들 중에 첫번째로 조건이 맞는 것만 실행되게 된다.)
public class IfHungry {
public static void main(String[] args) {
int money = 850;
if (money > 800) {
System.out.println("빵 맛있어 ! 뭘 더 사먹지?");
} else if (money == 800 ) {
System.out.println("빵 맛있어 ! 이제 남은 돈이 없네 ?");
} else {
System.out.println("돈이 모자라요 ㅠㅠ ");
}
}
}
두 조건을 동시에 만족할 때 실행하기
public class NestedIf {
public static void main(String[] args) {
int age = 15;
if (age >= 10) {
if (age < 20) {
System.out.println("10대");
} else {
System.out.println("10대 아님");
}
} else {
System.out.println("10살 미만");
}
}
}
중첩된 if문은 코드가 다소 복잡해 보이는 경우가 있다. 그래서 if문 안에서 두가지 조건을 판단하는 방법이 있다.
public class NestedIf {
public static void main(String[] args) {
int age = 15;
if (age >= 10 && age <20) {
System.out.println("10대");
} else {
System.out.println("10대 아님");
}
}
}
✔︎ && 연산자
조건이 2가지이기 때문에 4가지의 경우가 있다.
public class NestedIf {
public static void main(String[] args) {
System.out.println(true && true);
System.out.println(false && true);
System.out.println(false && false);
System.out.println(true && false);
}
}
양쪽 모두가 true인 경우에만 true가 출력 되는 것을 알 수 있다.
두 조건 중 일부만 만족해도 실행하기
Or(||) 연산자 사용한다.
public class NestedIf {
public static void main(String[] args) {
int age = 15
if (age < 10 || age >= 20) {
System.out.println("10대 아님");
} else {
System.out.println("10대");
}
}
}
✔︎ || 연산자
public class NestedIf {
public static void main(String[] args) {
System.out.println(true || true);
System.out.println(false || true);
System.out.println(false || false);
System.out.println(true || false);
}
}
switch-case
if문 이외의 또다른 조건문. switch-case는 if문보다 명확하고 깔끔하게 표현할 수 있다는 장점이 있다.
switch (value) {
case 값1 :
value의 값이 값1일 경우 실행될 코드
break;
default :
일치하는 값이 없을 때 실행될 코드
}
만약 value가 어떤 case의 값을 만족한다고 했을 때, 그 case의 코드가 실행되고 break를 만나면 멈춘다.
여기서 중요한 것은, break를 만나기 전의 구문들을 다 실행한다는 의미이다.
public class SwitchCase {
public static void main(String[] args) {
int month = 3;
switch (month) {
case 1:
System.out.println("January");
break;
case 2:
System.out.println("February");
break;
case 3:
System.out.println("March");
break;
default :
System.out.println("일치하는 값 없음");
}
}
}
문자열 비교하기
보통 문자열을 비교한다고 하면 이런 코드를 떠올린다.
import java.util.Scanner;
public class StringCompare {
public static void main(String[] args) {
String a = "초밥";
Scanner scanner = new Scanner(System.in);
String b = scanner.nextLine();
System.out.println(a == b);
}
}
입력 값 : 초밥 / 출력 값 : false
둘다 초밥이라는 문자열이었는데 같지 않다고 판단하는 이유는,
자바는 문자열의 같음을 판단할 때, 단순히 글자가 같은지 판단하는 것이 아니기 때문이다.
자바는 문자열과 같은 타입의 비교연산자를 사용할때에 그 값을 직접 비교하는 것이 아니라, 메모리상에서 그 값이 저장되어 있는 위치를 비교하기 때문이다.
( 우리가 a에 저장한 문자열과 표준입력을 통해 입력받은 초밥이라는 문자열은 서로 다른 주소를 가지고 있기 때문에 서로 다르다고 나온 것 )
그렇기 때문에 문자열을 비교할 때에는 비교연산자 == 가 아닌 equals를 이용해야한다.
import java.util.Scanner;
public class StringCompare {
public static void main(String[] args) {
// 문자열 비교
String a = "초밥";
Scanner scanner = new Scanner(System.in);
String b = scanner.nextLine();
System.out.println(a.equals(b));
}
}
입력 값 : 초밥 / 출력 값 : true
사용자와 상호작용하기
사용자가 입력한 값을 기반으로 조건을 검사하고 상호작용하는 코드 !
import java.util.Scanner;
public class Price {
public static void main(String[] args) {
// 음식 이름을 입력하면 가격을 출력해주는 프로그램
System.out.println("메뉴 번호를 입력해주세요.");
System.out.println("1. 치킨");
System.out.println("2. 국밥");
System.out.println("3. 피자");
Scanner scanner = new Scanner(System.in);
int menuNumber;
// 숫자가 아닌 것을 입력했을 때의 예외처리
try {
menuNumber = scanner.nextInt();
} catch (Exception e) {
menuNumber = -1;
}
switch (menuNumber) {
case 1 :
System.out.println("치킨은 만원입니다.");
break;
case 2 :
System.out.println("국밥은 오천원입니다.");
break;
case 3:
System.out.println("피자는 이만원입니다.");
break;
default :
System.out.println("올바른 메뉴 번호를 입력해주세요.");
}
}
}
유투브 "초간단 자바"님 영상을 통해 공부한 내용입니다 !www.youtube.com/watch?v=Q9gI7AJ0Y1Q
'Language > Java' 카테고리의 다른 글
배열 (0) | 2021.03.31 |
---|---|
반복문 (0) | 2021.03.30 |
사용자 입력과 예외 처리 (0) | 2021.01.26 |
데이터의 형태, 자료형 (0) | 2021.01.25 |
연산자 (0) | 2021.01.19 |