FreePascal中的月份名称

Pee*_*alu -1 pascal freepascal

输入:月份名称(1月/ 2月/ .../12月)

产量:季节(冬/春/夏/秋)

冬季:12月至2月

春天:3月 - 5月

夏季:6月 - 8月

秋天:9月 - 11月

我试过了:

Program Months;

var
  Month:String;

begin
  writeln('Insert month name:');
  readln(Month);

  if Month = 'March' or Month = 'April' or Month = 'May' then

    begin
    writeln(Month,' is Spring month');
    end

    ...
    etc   
    ...

end.
Run Code Online (Sandbox Code Playgroud)

但是这个程序没有用.

Tho*_*mas 6

运算符优先级 - 这很重要.你需要写:

if (Month = 'March') or (Month = 'April') or (Month = 'May') then
Run Code Online (Sandbox Code Playgroud)

这是因为在Pascal中,or优先级高于=实际评估的优先级:

if ((Month = ('March' or Month)) = ('April' or Month)) = 'May' then
Run Code Online (Sandbox Code Playgroud)

这显然毫无意义,不会编译(我可能在上面的行上犯了一个错误,但这是一般的想法).请参阅此链接以了解有关Pascal中运算符优先级的更多信息.