月份';s的名字在FreePascal中

月份';s的名字在FreePascal中,pascal,freepascal,Pascal,Freepascal,输入:月份名称(一月/二月/十二月) 产量:季节(冬/春/夏/秋) 冬季:12月至2月 春季:三月至五月 夏季:六月至八月 秋季: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 w

输入:月份名称(一月/二月/十二月)

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

冬季:12月至2月

春季:三月至五月

夏季:六月至八月

秋季: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.

但是这个程序不工作。

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

if (Month = 'March') or (Month = 'April') or (Month = 'May') then
这是因为在Pascal中,
的优先级高于
=
,因此实际评估的是:

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

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

不工作是对实际问题的糟糕描述。这是你在哪里做的第二个问题。你冒着被否决的风险。下一次:什么是错误,在什么线路上,你试过什么?还要注意的是,这个问题与上一个问题基本相同,都在if语句中漏掉了括号