3

I use following block of code to test some conditions in gw-basic program.

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$

It always prints Grade is: F whatever is the value of Àverage.

What is the error in this gw-basic program?

maliks
  • 1,102
  • 3
  • 18
  • 42

2 Answers2

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

Because this IF THEN ELSE line will always assign a value to Grade$ (no matter the content of Average), all of the previous IF THEN's don't count for much.

The solution however is very, very simple. Don't use the ELSE clause and give the Grade$ a default value of "F" to start with. That way, only if all of those conditions evaluate to false, the program will return "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$
Sep Roland
  • 33,889
  • 7
  • 43
  • 76
0

suppose print average line is line number 70, so after each line except the ELSE line write GOTO 70. Try if that works.