【问题标题】:Type Mismach Basic Language类型不匹配基本语言
【发布时间】:2018-02-16 12:51:09
【问题描述】:

我是 11 年级的学生,我正在使用 Basic 语言进行编码。我问了用户一个问题,用户可以选择是或否。在编码中,显示“类型不匹配”错误。同样在编码中,在问题之后,我编码了一些IF和END IF,在我遇到这个问题之前,当我运行程序时它打印了0。

我对为什么会出现类型不匹配感到困惑,即使我的变量位于 IF 和 END IF 区域。我有一个以 $ 结尾的字符串作为变量。这就是我所拥有的。

程序的一部分应该计算某人租车的总保险,但计算机需要知道用户是否需要保险。即使我说我确实想要保险,程序在程序结束时输出保险时仍然显示 0。

所以我的问题是,为什么会出现类型不匹配?

Print "Do you want insurance?"
Print "1.Yes"
Print "2.No"
Input strInsurance$
IF strInsurance$=Yes THEN
    strInsurance$=sngDailyInsurance*sngDays
END IF
IF strInsurance$=No THEN
    strInsurance$=0
END IF

【问题讨论】:

    标签: basic


    【解决方案1】:

    strInsurance$ 是一个字符串变量,因此您必须用引号将Yes 括起来,例如:

    IF strInsurance$="Yes" THEN
    

    还有:

    IF strInsurance$="No" THEN
    

    此外,您不能像在此处那样将数字分配给字符串变量:

    strInsurance$=0
    

    这里:

    strInsurance$=sngDailyInsurance*sngDays
    

    奇怪的是,你在任何情况下都为结果重用了输入变量。

    【讨论】:

    • 删除“可能”;他绝对需要引用他正在测试的价值观。此外,前面IF 语句中的计算也尝试将数字分配给字符串变量。
    • 是的,错过了那一行。
    • 感谢您的帮助。
    【解决方案2】:

    正确的代码是:

    Print "Do you want insurance?"
    Print "1.Yes"
    Print "2.No"
    Input strInsurance$
    IF strInsurance$="Yes" THEN
       strInsurance$=str$(sngDailyInsurance*sngDays)
    END IF
    IF strInsurance$="No" THEN
       strInsurance$="0"
    END IF
    

    【讨论】:

      猜你喜欢
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-11
      • 2018-02-14
      • 2021-01-19
      • 1970-01-01
      • 2020-10-02
      相关资源
      最近更新 更多