新手求助:如何修复Pascal程序中Case语句的语法错误?
Pascal Case语句语法错误排查与修复
错误原因分析
- 分支分隔符缺失:Case语句中,除最后一个分支(else分支)外,每个分支末尾必须用分号
;分隔。你的第一个分支1..2结束后未加分号,这是触发报错的直接原因。 - 输出语句语法错误:第4个分支里的
writeln:=(factor);是错误写法,writeln是输出过程,不能使用赋值符号:=,正确写法为writeln(factor);。 - 程序结束符错误:Pascal程序的顶层
begin...end块结束后,必须用点号.而非分号,原代码末尾的end;不符合语法规范。
修复后的完整代码
program Mss; var rate,factor:integer; begin readln(rate); case rate of 1..2:begin factor:=(2*rate)-1; writeln(factor); end; 3:begin factor:=(3*rate)-1; writeln(factor); end; 4:begin factor:=(4*rate)-1; writeln(factor); end; 5:begin factor:=(3*rate)-1; writeln(factor); end; 6..8:begin factor:=rate-2; writeln(factor); end; else begin writeln(rate); end end.
内容的提问来源于stack exchange,提问作者Sritharni Natarajan
相关产品推荐
相关产品推荐

