【问题标题】:I don't know what's wrong with this code I'm running on Just BASIC我不知道我在 Just BASIC 上运行的这段代码有什么问题
【发布时间】:2013-07-12 09:36:40
【问题描述】:
[Start]
n=INT((RND*10)+1)
PRINT "I have thought of a number."
PRINT "Try to guess it!"
PRINT "Enter your guess."
INPUT g

[Right]
IF g=n THEN GOTO [Finish]
**IF g < n PRINT "Your guess was wrong. Try again. The correct answer was "; n;"." THEN GOTO [Start]
IF g > n PRINT "Your guess was wrong. Try again! The correct answer was "; n;"." THEN GOTO [Start]**

[Finish]
PRINT "Well done! You guessed it."
END

【问题讨论】:

  • 本世纪没用过BASIC,但我觉得你用THEN是不对的。
  • 我还没有得到任何线索,但我很想用这个在线编译器onlinecompiler.net/basic 来解决这个问题。如果我到了任何地方,我会通知你(不过不要屏住呼吸)
  • 这是什么语言?我确信它不是 BASIC,因为有“PRINT”。也许我可以帮助你,如果你能说出它是什么语言。

标签: basic


【解决方案1】:
IF condition THEN positive ELSE negative

但是,这个

IF g > n THEN PRINT "Your guess was wrong. Try again! The correct answer was "; n;"."; GOTO [Start]

不会做你想做的事,因为 IF...THEN...ELSE 语句在打印之后结束,随后的 GOTO 将在任何一种情况下运行。

在大多数 BASIC 中,您可以这样做:

IF g > n THEN 
  PRINT "Your guess was wrong. Try again! The correct answer was "; n;"."; 
ELSE
  GOTO Start
END IF

但我不确定你的口味。

【讨论】:

    【解决方案2】:

    虽然它可以用更少的 GOTO 来编写,但这也应该有效:

    [Start]
    n=INT((RND*10)+1)
    PRINT "I have thought of a number."
    PRINT "Try to guess it!"
    PRINT "Enter your guess."
    INPUT g
    
    [Right]
    IF g=n THEN GOTO [Finish]
    
    PRINT "Your guess was wrong. Try again. The correct answer was "; n;"."     
    GOTO [Start]
    
    [Finish]
    PRINT "Well done! You guessed it."
    END
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2016-05-13
      • 2012-09-08
      相关资源
      最近更新 更多