1. 조건문
: 주어진 조건식의 결괏값이 참인지 거짓인지에 따라 코드를 실행할 것인지 혹은 다른 코드를 실행할 것인지 판단하기 위한 프로그래밍 문법.
a. if
(조건식): 비교연산자(==,<,>)와 논리연산자(&&,ll) 사용
{결과}: boolean 타입인 true와 false
※ a < b < c 를 한번에 할 순 없고, a<b && b<c 와 같이 논리 연산자 사용.
※ +=, -=, =, /= 대입 연산자 사용하기
변수와 등호(=) 사이에 산술 연산자인 +, -, , /가 있으면 변수 자신과 연산한 결과를 대입하라는 의미.
(변수 = 변수 + 1)과 같은 수식은 (변수 += 1)로 바꿀 수 있다.
(변수 = 변수 - 3)도 역시 (변수 -= 3)과 동일.
기본적인 if문= (조건식)과 {조건이 참일 때의 결과값}
⇒ if (조건식) {//조건식이 참일 경우 실행되는 코드 영역}
ㄴ 이 {부분}을 ‘코드 블록‘ 혹은 ‘코드 스코프‘
EX)
var myNumbers = "1, 2, 3, 4, 5, 6"
var thisWeekNumbers = "5, 6, 7, 8, 9, 10"
if (myNumbers == thisWeekNumbers){ // if문 시작(해당 조건을 만족하면 if 블록 내의 코드를 수행. 조건이 맞지 않는다면 아무것도 출력하지 않음. //)
Log.d("Lotto", "당첨되었습니다!")
} // if문 끝
변수에 직접 if문의 조건식 결과 대입하기 -> 값이 변수에 저장된다.
EX)
var a = 30
var b = 19
var bigger = a > b ☜ 값에 조건식을 집어넣은 것임. 그리고 log로 결과값을 불리언값으로 산출.
Log.d("비교 연산자", "a는 b보다 큽니다.: $bigger") // a는 b보다 큽니다.: true
EX2)
var a = 5
var b = 3
var bigger = if (a > b) a else b
ㄴQ. 중괄호 쓸 필요 없나. A. 아래의 것을 봤을 때 두 줄이상이면 중괄호 적어주는 듯.
EX3)var a = 5
var b = 3
var bigger = if (a > b){
var c = 30
a // 마지막 줄의 a 값이 변수 bigger에 저장됩니다.
} else {
b
}
ㄴ위의 코드와 같은데, if문의 코드 영역이 여러 줄일 경우에도 마지막 줄을 변숫값으로 사용할 수 있다.
b. if ~ else
-조건식의 결과가 참이면 if 다음에 있는 코드 블록 { } 의 코드가 실행되고,
거짓이면 else 다음에 있는 코드 블록 { } 의 코드가 실행된다.
-if (조건식) {
// 조건식이 참일 경우 실행되는 코드 영역
} else {
// 조건식이 거짓일 경우 실행되는 코드 영역
}
TIP. 실제로 앱이나 웹을 개발할 때는 실행이 되지 않았을 때의 경우도 화면에 띄어주어야 하므로, else도 같이 사용하는 것이 일반적임!
/ else문은 if else 와는 다르게 a와 b 두가지 선택지 밖에 없을 때 사용. else if도 가능하겠지만 굳이?
/
그런데 else와 같이 앞이 거짓인 경우 실행된 코드가 있다면, 앞이 참일 경우 계속 실행되게 하는 것은 없을까? -> while문!!
c. if~else if~else
-if 문을 반복해서 사용할 때.
if (조건식1) {
// 조건식1의 결과가 참일 경우 실행되는 코드 영역
} else if (조건식 2){
// 조건식1의 결과가 거짓이고, 조건식2의 결과가 참일 경우 실행되는 코드 영역
} else {
// 조건식1과 조건식2의 결과가 모두 거짓일 경우 실행되는 코드 영역
}