JAVA 제어문 - 4.1. 조건문 - 형식
조건문 Conditional Statement
모양
1)
if(조건) {
실행될 코드
}
2)
if(조건) {
실행될 코드
} else if(조건) {
실행될 코드
} else {
실행될 코드
}
시간에 순서에 따라서 a 1 b를 출력하는 간단한 프로그램을 만들 것
System.out.println("a");
if(true) {
System.out.println(1);
} else if(true){
System.out.println(2);
} else {
System.out.println(3);
}
System.out.println("b")
JAVA 제어문 - 4.2. 조건문 - 응용1
[run configuration] - [arguments] 값으로 egoing 입력
String id = "egoing";
String inputId = args[0];
System.out.println("Hi");
if(inputId.equals(id)) {
System.out.println("Master!");
} else {
System.out.println("Who are you?");
}
.equals() : 양쪽 내용을 비교한 값을 boolean type으로 반환
※ ==에서는 같은 egoing인데 false로 작동하고 .equals()로는 true로 작동하는 이유
==는 주소값이 같아야 True고 .equals() 는 밸류값이 같으면 true이기 때문
다른말로, ==가 true일려면 a=b는 트루이지만 b를 복사하여 새주소로 만들어진b는false이다. 그러나 .equals() 이라면 값이 같으므로 true
※ ==와 .equals() 차이
종류 | 비교차이 | call 방식 | |
== | 연산자(operator) | 비교대상 주소값 | call by reference |
.equals() | 메소드(method) | 비교대상의 내용 | call by value |
(주소값과 밸류값의 차이가 결국 call by reference와 value 개념과 같은 이야기인데
초보자들은 이해하기 어려우니 따로 분류)
※ Call by reference & value
1)call by reference : 주소값이 부여됨. 이 때문에 객체를 불러오면 주소값을 불러온다
ex) class, 객체object
String a = "100";
String b = a; # 같은 주소값
(만약, new 써서 인스턴스를 만든다면 값은 값지만 주소는 다르게 된다)
2)call by value : 기본적으로 대상의 주소값을 가지지 않고 '값'을 할당받는 형태
ex) int, float, double 같은 primitive type들
JAVA 제어문 - 4.3. 조건문 - 응용2
[run configuration] - [arguments] 에서 두번째 인자값 추가 1111 입력
(값 추가는 스페이스로 공백 주면 된다)
String id = "egoing";
String inputId = args[0];
String pass = "1111"; // pw : 1111
String inputPass = args[1];
System.out.println("Hi");
if(inputId.equals(id)) {
if(inputPass.equals(pass)) {
System.out.println("Master!");
} else {
System.out.println("Wrong pw!");
}
} else {
System.out.println("Who are you?");
}
// 위의 if문을 더 심플하게 해보는 코드
if(inputId.equals(id) && inputPass.equals(pass)) { # && 논리연산자(=and)
System.out.println("Master!");
} else {
System.out.println("Who are you?");
}
※ 논리연산자(&&)
A and B(A와 B 둘다)처럼 양쪽 요건을 충족할 경우 작동하는 것이 논리연산자
(파이썬의 and와 같다)
'JAVA > 생활코딩 JAVA 제어문' 카테고리의 다른 글
생활코딩 JAVA 제어문(Flow Control) 7.1-2 : 반복문(Looping statement),배열(array) (0) | 2022.01.14 |
---|---|
생활코딩 JAVA 제어문(Flow Control) 6 : 논리 연산자(logical operator) (0) | 2022.01.14 |
생활코딩 JAVA 제어문(Flow Control) 5 : == vs equals (0) | 2022.01.14 |
생활코딩 JAVA 제어문(Flow Control) 3 : 비교연산자(Comparison Operator) (0) | 2022.01.09 |
생활코딩 JAVA 제어문(Flow Control) 1-2 : 수업소개 & 불리언(Boolean) Data type (0) | 2022.01.09 |