# Typescript 學習筆記2 迴圈控制與條件判斷

## 迴圈
### for loop
就一般的for loop
```typescript=
for(let i:number = 0 ; i < 10 ; i++){
console.log(i);
}
```
輸出會是
```=
0
1
2
3
4
5
6
7
8
9
```
---
### for...in
簡單來說 i 就會是 index
```typescript=
let a:Array<number> = [1,2,3,4,5,6,7,8,9,10];
for(let i in a){
console.log(i+" "+a[i])
}
```
輸出會是
```=
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
```
- - -
### for...of
很像for...each
```typescript=
let a:Array<number> = [1,2,3,4,5,6,7,8,9,10];
for(let i of a){
console.log(i)
}
```
輸出會是
```=
1
2
3
4
5
6
7
8
9
10
```
- - -
其他的 while 和 do...while和 Java很像
## 條件控制 ifelse switch
- equal
- ``==`` or ``===``
- Not equal
- ``!=`` or ``!==``
- Not
- ``!``
- or
- ``||``
- and
- ``&&``
另外,`` [1,2] == [1,2] `` 會是 false 喔,如果要比較可以轉成string再比 (踩到的雷)
```typescript=
let a:Array<number> = [1,2,3,4,5,6,7,8,9,10];
let d:[number,string] = [time,a.length.toString()]
console.log(d==[time,a.length.toString()]) // false...... why
switch (d.toString()) {
case [1,a.length.toString()].toString():
console.log("n")
break;
case [3,a.length.toString()].toString():{
console.log("time++");
time++;
}
case [4,a.length.toString()].toString():{
console.log("hi");
}
default:
console.log("he");
break;
}
```
比較特別的點是 switch 中可以用
```typescript=
case VALUE:{
// content here
}
```
這種寫法
###### tags: `typescript`