80 lines
1.4 KiB
Plaintext
80 lines
1.4 KiB
Plaintext
/* ===== 模块3:控制流 =====
|
||
* test05_control — 分支与循环
|
||
* 难度:2/5
|
||
* 验证点:if/else、while、loop、break、continue
|
||
*/
|
||
fn main() i32 {
|
||
/* ---- if/else ---- */
|
||
var x: i32 = 10;
|
||
if x > 5 {
|
||
x = 0;
|
||
} else {
|
||
x = 1;
|
||
}
|
||
if x != 0 { ret 1; }
|
||
|
||
/* else 分支 */
|
||
var y: i32 = 1;
|
||
if y > 5 {
|
||
y = 10;
|
||
} else {
|
||
y = 20;
|
||
}
|
||
if y != 20 { ret 2; }
|
||
|
||
/* if 不带 else */
|
||
var z: i32 = 0;
|
||
if z == 0 {
|
||
z = 99;
|
||
}
|
||
if z != 99 { ret 3; }
|
||
|
||
/* ---- while ---- */
|
||
var i: i32 = 0;
|
||
while i < 5 {
|
||
i = i + 1;
|
||
}
|
||
if i != 5 { ret 4; }
|
||
|
||
/* while 条件为 false */
|
||
var j: i32 = 0;
|
||
while j > 0 {
|
||
j = j + 1;
|
||
}
|
||
if j != 0 { ret 5; }
|
||
|
||
/* ---- loop / break ---- */
|
||
var k: i32 = 0;
|
||
loop {
|
||
k = k + 1;
|
||
if k >= 3 { break; }
|
||
}
|
||
if k != 3 { ret 6; }
|
||
|
||
/* ---- continue ---- */
|
||
var n: i32 = 0;
|
||
var m: i32 = 0;
|
||
while n < 5 {
|
||
n = n + 1;
|
||
if n == 3 { continue; }
|
||
m = m + 1;
|
||
}
|
||
if n != 5 { ret 7; }
|
||
if m != 4 { ret 8; }
|
||
|
||
/* ---- 嵌套控制流 ---- */
|
||
var total: i32 = 0;
|
||
var p: i32 = 0;
|
||
while p < 3 {
|
||
var q: i32 = 0;
|
||
while q < 4 {
|
||
total = total + 1;
|
||
q = q + 1;
|
||
}
|
||
p = p + 1;
|
||
}
|
||
if total != 12 { ret 9; }
|
||
|
||
ret 0;
|
||
}
|