嵌套IF“;”错误预期,但找到“标识符GANJIL”

时间:2018-09-22 15:22:32

标签: pascal

我收到一条错误消息:Fatal: Syntax error, ";" expected but "identifier GANJIL" found。因此,我决定在错误行上放置“;”(注释为错误1)。现在出现第二条错误消息,在另一行说:Fatal Syntax error, ";" expected but "ELSE" found。 (注释为“错误2”) 我一直在寻找通过谷歌的解决方案,没有帮助。 谢谢你。

program s01;
Var 
    x,t,i,counter,genap,ganjil:integer;
begin
    write('Masukkan nilai x :'); readln(x);
    for i:=1 to x do
    begin
        write('case ',i,' :'); readln(t);
        genap  := 1;
        ganjil := 1;
        for counter:=0 to (t+2) do
        begin
            if counter=t+2 then
                write(ganjil)
        else
            write(ganjil,'') //Error 1
            ganjil := ganjil+2
        else
            if counter=t-1 then //Error 2
                    write(genap);
            else
                    begin
                        write(genap,'');
                        genap := genap+2;
                    end;    
        end;
        writeln();
    end;
Readln();            
end.

1 个答案:

答案 0 :(得分:0)

第二个没有意义。构造是if..then [.. else],每个if仅剩一个。

写(genap)之前的分号也可能不是您想要的。

缩进是奇怪的(为什么write(ganjil,'')和ganjil:= ganjil + 2;在同一级别上?)

除了使自己更容易之外,如果您不懂,也可以使用适当的缩进。