stage1 重构测试且成功00-05

This commit is contained in:
zzy
2026-07-05 21:45:43 +08:00
parent 51d8510b79
commit e2e0ebc21f
39 changed files with 1090 additions and 461 deletions

79
stage1/test05_control.spl Normal file
View 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;
}