■ 조건문
조건을 입력하여 그 조건에 따라 다르게 실행되도록 프로그래밍하는 역할
■ 조건문 쓰는 법
class Main {
public static void main(String[] args) {
if (true나 false로 판명되는 결과값){
}
if (true나 false로 판명되는 결과값){
}
else if(true나 false로 판명되는 결과값){
}
else{
}
}
}
첫번째줄 if 의 소괄호()안이 true로 판명되면 첫번째 중괄호{}안이 실행되고
false가 되면 중괄호{}안이 실행되지 않는다.
그리고 두번째줄이 if일 때는 그걸 실행시킨다.(else if나 else라면 실행시키지 않는다.)
그래서 두번째 if의 소괄호()안이 true로 판명되면 두번째 중괄호{}안이 실행되고
false가 되면 중괄호{}안이 실행되지 않는다.
그렇게 세번째 줄로 넘어가서 if문이 아닌 else if문이 나왔다.
앞의 if문중 단 하나라도 true가 나오면 이건 실행하지 않는다.
그러나 앞의 if문 모두가 false로 판명되면
그때 else if가 실행된다.
else if의 소괄호()안이 true로 판명되면 그것의 중괄호{}안이 실행되고
false가 되면 중괄호{}안이 실행되지 않는다.
마지막 else는 여태까지의 조건문의 결과 중 단 하나라도 true가 나오면 실행되지 않고
false가 나왔다면 무조건 실행된다. 양립하지 않는(정답이 무조건 1개인) 조건에서 else를 쓰면
참이 나오면, else가 등장하는 구문은 실행하지 않는다는 뜻이다.
■ 조건문에서 쓰이는 약속들
*이하,미만,초과,이상
<=
<
>
>=
'='은 괄호 뒤에 써줘야한다. 앞에 써주면 오류가 난다!
*&&의 뜻
else if (age>=40 && age<50) {
}
&(그리고)를 두번 써면 &&이 되면 양쪽이 참이어야만 한다는 뜻이다. 한쪽이라도 거짓이면 실행되지 않는다.
* == → 같다
* != → 같지않다
* ! → 반전
* boolean c → c 에는 오직 true/false 만 담을 수 있다.
* i++ → i 의 값을 1 증가 시킨다.
* i-- → i 의 값을 1 감소 시킨다.
* i = i + 2 → i 의 값을 2 증가 시킨다.
* i += 2 → i의 값을 2 증가 시킨다.(위와 같은 표현)
* i = i - 2 → i 의 값을 2 감소 시킨다.
* i -= 2 → i 의 값을 2 감소 시킨다.(위와 같은 표현)
■ 조건문 다른 예시
else if(age<20){
System.out.println("10대입니다.");
}
"10대 입니다."를 출력하는 else if의 조건문에 age>=10 && age<20 라고 적지 않고
age<20이라고만 적었다. 이렇게 써도 될까?
else if문이 실행된다는 것은 앞의 if문(1~9살)이 거짓이라
두번째로 넘어온 것이기 때문에 age>=10가 자동적으로 참이 돼서 age<20 조건만 따져보면 된다.
세번째문장으로 넘어왔다면 첫번째 문장(1~9살)과 두번째문장(10~20살)이 거짓이라는 뜻이므로
age>=20가 자동적으로 참이 돼서 age<30 조건만 따져보면 된다.
그리고 else는 위의 문장이 거짓이기때문에 마지막 까지 온 것이기 때문에
마직막 문장은 무조건 참이 되므로 else if중 if를 빼고
else{
System.out.println("30대이상입니다.");
라고 써도 된다.
그래서 else를 쓰면 조건문을 쓸 때 효율적으로 실행(결론 내리는 속도가 빨라질 수 있다.)
■ 조건문 소괄호 안쪽 (20>2 && 10>3 && true!=false && 10!=10)을 실행하는 과정
1단계 : true && 10>3 && true!=false && 10!=10
2단계 : true && true && true!=false && 10!=10
3단계 : true && true!=false && 10!=10
4단계 : true && true && 10!=10
5단계 : true && 10!=10
6단계 : true && false
7단계 : false
■ 참고로, a:5 b:10 으로 출력하던 소스코드를 a:10 b:5로 출력되게 수정하는 방법 3가지
class Main {
public static void main(String[] args) {
int a=5;
int b=10;
system.out.println("a:"+a);
system.out.println("b:"+b);
}
}
a:5
b:10'
라고 출력된다.
그런데 a:10 b:5 라는 출력을 얻고 싶다면 어떻게 수정해야 되나?
방법1) a와 b를 숫자로 재정의
class Main {
public static void main(String[] args) {
int a=5;
int b=10;
a=10;
b=5;
system.out.println("a:"+a);
system.out.println("b:"+b);
}
}
방법2) a와 b를 서로 바꿈
class Main {
public static void main(String[] args) {
int a=5;
int b=10;
a=b;
b=a;
system.out.println("a:"+a);
system.out.println("b:"+b);
}
}
방법3) 다른 변수(공간)에 a의 데이터를 담아 놓고 a와 b를 서로 바꿈
class Main {
public static void main(String[] args) {
int a=5;
int b=10;
int c=a;
a=b;
b=c;
system.out.println("a:"+a);
system.out.println("b:"+b);
}
}
int c 를 이용해서 a안의 내용물을 공간 c를 창조하여 그 안에 담아놓고(백업해놓고)
a=b를 사용하고 다시 b에는 공간c안에 있던 내용물(a의 내용물)을 담아준다.
별 것 아닌 것 같은데
방법3는 추후에 반복문+조건문에서 긴요하게 쓰이기때문에 꼭 알아두어야 한다.
'IT관련 > JAVA_정리 노트' 카테고리의 다른 글
객체 기초 (0) | 2020.04.16 |
---|---|
형변환 기초 (0) | 2020.04.15 |
print println pritf 차이점 (0) | 2020.04.15 |
템플릿 기초 (0) | 2020.04.14 |
자바를 배울 때 첫번째로 알아야 하는 것 (0) | 2020.04.09 |
댓글