조건문
[ IF문 ]
문법: if(조건) {조건이 true일 경우} else {조건이 false인 경우}
여러조건일 경우: if(조건1) {로직1} elseif(조건2) {로직2} elseif(조건n) ...
else if는 조건이 필요하고 여러번 사용할수 있는 반면, else는 조건이 불필요하며 한번만 사용할 수 있다.
sName !== sName2
조건 자체는 fales지만 !
는 not연산자이기 때문에 true값으로 반환된다.
반복문
[ Do While 문 ]
do-while 문은 평가전 반복문이다. 조건을 평가하기 전에 루프 본문을 먼저 실행하기 때문에 최소 한 번은 반드시 실행된다. 그래서 최초한번은 조건이 true이든 false든 실행한다.
문법: do { 실행 } while (조건);
여기서 i += 2
는 i = i+2
와 같은 구문이다. 그래서 현재 i는 조건문과 맞지않아 false지만 최초한번은 실행되기 때문에 i=12라는 결과가 나온다.
[ While 문 ]
while 문은 평가후 반복문이다. 그래서 조건을 평가한 후에 루프 본문을 실행하기 때문에 실행되지 않을수 있다.
문법: while (조건) { 실행 };
do while구문과 다르게 실행되지않는다.
[ For 문 ]
For문 역시 평가 후 반복문이다. While과 거의 흡사하고 보면 된다.
문법: for (0변수초기화; 1조건; 3변수값 변경) {2조건이 true인 경우}
변수초기화-조건-조건이 true인경우-변수값변경-조건-조건이 true인경우-변수값변경 ... 이런식으로 순서가 실행된다.
보통 인덱스 증가할때 많이 사용하며 변수값 변경
에 변수++
로 자주사용한다.
50까지의 숫자 중, 5의 배수만 출력하는 구문을 짜보자.
for (var i=0; i<=50; i++){
if (i!==0 && i % 5 === 0){
document.write("i = " + i + "<br/>")
}}
for (var i=5; i<=50; i+=5){
document.write("i = " + i + "<br/>")
}
변수 i
는 0부터 시작하지만 0은 5의 배수가 아니기때문에 0은 제외해야한다. 그래서 AND연산자 &&
를 사용한다. 이때 불일치는 꼭 !==
를 사용한다. !=
는 강제형변환 시키기 때문이다.
[ For - continue ]
continue와 break는 반복문에서만 사용가능하다.
if문의 조건이 true일 경우 continue문을 타게 되는데 continue 구문을 타면 다음로직을 타지않고 처음부터 다시 시작한다.
그래서 변수의 값이 5의배수인 경우를 제외한 false값만 출력한다. continue를 사용해 5의배수만 나오게 하려면 조건 자체에 not 연산자를 붙여주면된다.
[ For - break ]
continue와 다르게 break구문을 만나면 멈춘다.
[ Switch ]
대부분의 언어에서 switch문은 숫자 타입에서만 사용할 수 있지만 Javascript의 switch문은 모든 데이터 타입에서 동작해 문자열과 객체에서도 사용할 수 있다.
if문은 해당하는 실행문을 타면 다른실행문을 타지 않지만 switch문은 조건과 같은 case문을 타고 case문에 걸리는순간 그 뒤 case문 전부 다 타게된다. 그래서 break;
사용한다.
문법: switch (조건) { case 조건1: 실행문; break; case 조건 2....3..}
break
를 사용하지 않으면 case 2에 걸리면서 그 뒤 case문을 모두 타서 뒤의 write문까지 모두 다 출력이 된다.
switch문을 문자열에서 사용해보자.
<body>
<!-- input 입력받을수 있는 필드 -->
<input id='numberInput' /><button onclick="onPrint();">실행</button>
<script>
function onPrint() {
var iInputValue = document.querySelector("#numberInput").value;
switch (iInputValue) {
case "hello world":
document.write("만났습니다.");
break;
case "goodbye":
document.write("헤어집니다.");
break;
default:
document.write("적당한 인삿말이 없네요.");
break;
} }
</script>
</body>
각 case문마다 break
를 써줘야한다.
switch문을 숫자 타입에서 사용해보자.
<body>
<!-- input 입력받을수 있는 필드 -->
<input id='numberInput' /><button onclick="onPrint();">실행</button>
<script>
function onPrint() {
var iInputValue = document.querySelector("#numberInput").value;
switch (true) {
case iInputValue<0:
document.write("0보다 작습니다.");
break;
case iInputValue>=0 && iInputValue<=10:
document.write("0과 10 사이입니다.");
break;
default:
document.write("10보다 큽니다.");
break;
} }
</script>
</body>
switch문을 여러 데이터타입에서 사용해보자.
<body>
<!-- input 입력받을수 있는 필드 -->
<input id='numberInput' /><button onclick="onPrint();">실행</button>
<script>
function onPrint() {
var sCode = document.querySelector("#numberInput").value;
var sCode = null;
switch (sCode) {
case 0:
case null:
case false:
case "":
case undefined:
document.write("false"); //0,null,false,빈값, undefined값 모두 false
break;
default:
document.write("true");
}}
</script>
</body>
이 경우엔 case문이 다 같은 false값으로 반환이 된다. 그래서 write구문이 끝나는곳에만 break를 걸어준다.
먄약 if문으로 한다면
if(
sCode === 0 ||
sCode === null ||
sCode === false ||
sCode "" ||
sCode === undefined)
이런식으로 조건이 걸어질 것이다.
'Fiori > UI5' 카테고리의 다른 글
[JavaScript] 원시값과 참조값 (0) | 2023.03.06 |
---|---|
[JavaScript] 함수와 매개변수 (2) | 2023.03.06 |
[JavaScript] 연산자 (0) | 2023.03.06 |
[JavaScript] 형변환 내장함수 (0) | 2023.03.06 |
[JavaScript] 변수와 데이터 타입 (0) | 2023.03.06 |
댓글