stage1 重构测试且成功00-05
This commit is contained in:
79
stage1/test05_control.spl
Normal file
79
stage1/test05_control.spl
Normal file
@@ -0,0 +1,79 @@
|
||||
/* ===== 模块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;
|
||||
}
|
||||
Reference in New Issue
Block a user