如何解决Pascal中"identifier expected but ordinal const found"语法错误?
Pascal语法错误解决:非法限定符/预期identifier错误
错误信息
(14,22) 错误:非法限定符
(14,22) 致命错误:语法错误,预期“identifier”但发现“ordinal const”
报错代码
PROGRAM menentukan_bonus_karyawan; uses crt; var nama, golongan: string; lama_kerja : integer; bonus : real; begin clrscr; write('Masukkan nama anda : '); readln(nama); write('Golongan karyawan (staf/ non-staf) : '); readln(golongan); write('Lama kerja : '); readln(lama_kerja); case (golongan) of 'staf' : if lama_kerja >= 10 then bonus := 1.000.000 <--- error line else bonus := 700.000; 'non-staf' : if lama_kerja >= 10 then bonus := 500.000 else bonus := 350.000; end; writeln('Saudara ', nama, ' dengan golongan karyawan ', golongan, ' mendapatkan bonus sebesar Rp. ', bonus); readln; end.
问题原因与解决方法
问题出在你用.作为数字的千位分隔符,Pascal语法不允许这种写法——编译器会把1.000.000解析成1.000(一个浮点数)后面跟.000,这不符合语法规则,因此触发报错。
直接去掉数字中的所有.即可,修改后的代码片段如下:
case (golongan) of 'staf' : if lama_kerja >= 10 then bonus := 1000000 else bonus := 700000; 'non-staf' : if lama_kerja >= 10 then bonus := 500000 else bonus := 350000; end;
如果你的Pascal编译器支持(比如Delphi),也可以用_作为千位分隔符提升可读性,比如写成1_000_000,但所有标准Pascal编译器都支持直接写无分隔符的纯数字。
内容的提问来源于stack exchange,提问作者tazuu
相关产品推荐
相关产品推荐

