2016-09-28 11 views
3

gw-basicプログラムのいくつかの条件をテストするために、次のコードブロックを使用します。GW-BASICのネストされたIF ... THEN ... ELSE

IF Average >= 80 AND Average <= 100 THEN Grade$ = "A" 
IF Average >= 70 AND Average <= 79 THEN Grade$ = "B" 
IF Average >= 60 AND Average <= 69 THEN Grade$ = "C" 
IF Average >= 50 AND Average <= 59 THEN Grade$ = "D" 
IF Average >= 40 AND Average <= 49 THEN Grade$ = "E" ELSE Grade$ = "F" 
PRINT "Average is: ", Average 
PRINT "Grade is: ", Grade$ 

常にÀverageの値であるGrade is: Fを出力します。

このgw-basicプログラムのエラーは何ですか?

答えて

4
IF Average >= 40 AND Average <= 49 THEN Grade$ = "E" ELSE Grade$ = "F" 

このIF THEN ELSEラインは常に前のIF THEN年代のすべてが多くを数えない、グレードに$(どんなに平均の内容を)値を代入しますので。

しかし、解決策は非常に非常に簡単ですです。 ELSE句を使用せず、最初にグレード$にデフォルト値 "F"を付けてください。そうすれば、それらの条件がすべてfalseに評価された場合にのみ、プログラムは "Grade is:F"を返します。

Grade$ = "F" 
IF Average >= 80 AND Average <= 100 THEN Grade$ = "A" 
IF Average >= 70 AND Average <= 79 THEN Grade$ = "B" 
IF Average >= 60 AND Average <= 69 THEN Grade$ = "C" 
IF Average >= 50 AND Average <= 59 THEN Grade$ = "D" 
IF Average >= 40 AND Average <= 49 THEN Grade$ = "E" 
PRINT "Average is: ", Average 
PRINT "Grade is: ", Grade$ 
0

ELSE行以外の各行の後にGOTO 70を書くと、平均行は70行だとします。

関連する問題