-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path5-switch-when.dart
92 lines (76 loc) · 2.43 KB
/
5-switch-when.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
void main() {
//operadores ternarios - ternary
String someValue = 'ni!';
String value = someValue.startsWith('H') ? 'Wow!' : 'Naha';
print(value);
bool temH = someValue.startsWith('H') ? true : false;
print(temH);
// Switch Statement
switch(someValue) {
case 'Hi!':
print('Tem Hi!');
case 'Xi!':
print('Tem Xi!');
case 'opa':
break; // é obrigatório colocar break em cases vazios.
// em Java todo case tem de ter break obrigatório,
// mas em Dart3 não precisa pôr break em todos os cases.
default:
print ('Nem um, nem outro.');
}
// até o Dart3, Switch não permite usar operadores relacionais
// tais como ==, !=
// <, >, >=, <=.
//Uso interessante de nao colocar break em case vazio: permitir
// o mesmo default para uma lista de diferentes casos:
int valorTeste = 9; //testar colocando 0, 4, 10, 90
switch(valorTeste) {
case 0:
print('O valorTeste é = ');
print(valorTeste);
case 1:
case 2:
case 3:
case 4:
case 5:
default:
if (valorTeste>5 && valorTeste !=90) {print('o valorTeste é maior que 5 e diferente de 90');}
else if (valorTeste<5) {print('valorTeste está entre 1 e 5');}
else print('valorTeste = 90');
// se tivesse break nos cases 1 a 5 não chegaria até o default
}
//operadores ==, !=, >, <, >=, <= nao podem existir no corpo
//do switch, mas dá pra por isso usando WHEN em cases
int age = 19; // brincar com valores acima ou abaixo de 20
someValue = 'Hi!'; // brincar com Xi, Ni, Ri, e outros
switch(someValue) {
case 'Hi!' when age>= 20:
print('Yep!');
case 'Hi!'when age < 20:
print('Yo!');
case 'Xi!':
break;
case 'Ni!':
case 'Ri!':
default:
print('Ni, Ri ou qualquer coisa menos Hi e Xi - inclusive nada');
}
// OUTRA FORMA DE FAZER SWITCH, MAS COM FAT ARROWS:
int page = 0;
int lastPage = 1;
final text = switch(page) {
0 => 'Click here',
1 => 'Click Me!',
_ => 'None', // _ significa Default
};
print(text);
// SWITCH FAT ARROW COM WHEN:
int pageB = 0;
int lastPageB = 1;
final textB = switch(lastPageB) {
0 => 'Click here',
1 when pageB == lastPageB => 'Click Me!',
_ => 'None', // _ significa Default
};
print(textB);
}