位置:首页 > 其他编程语言 > basic语言教程 QB64入门与完整实例

basic语言教程 QB64入门与完整实例

时间:2026-08-10  |  作者:极客少年  |  阅读:0

本教程统一使用QB64及其兼容的QBasic风格语法。读者将从创建并运行第一个程序开始,依次学习变量、输入输出、运算符、条件判断、FOR与WHILE循环、SUB过程设计和基础调试。文中的代码均按QB64结构完整展示;其他BASIC方言的差异集中在文末说明。

准备QB64并运行第一个程序

从QB64官方网站下载适合当前操作系统的版本,解压后启动QB64可执行程序。进入编辑器后选择File菜单中的New,新建源文件并输入代码;按F5编译运行,按Ctrl+S可将源文件保存为.bas文件。第一次运行时如果系统弹出安全提示,应按操作系统的应用授权方式处理。下面的程序无需行号,可直接在QB64中运行。

  • 完整代码:

    PRINT "Hello, BASIC"
    END
  • 预期输出: Hello, BASIC

  • 逐行说明:PRINT把引号中的字符串显示到屏幕上;END结束主程序。QB64通常也能在文件末尾自然结束,但本教程保留END,使主程序边界更清楚。

变量、类型与基本代码规则

QB64可以使用DIM显式声明变量。常用基础类型包括INTEGER整数、LONG长整数、SINGLE单精度小数、DOUBLE双精度小数和STRING字符串。显式声明能减少拼错变量名导致的逻辑错误。变量赋值使用等号,不必写LET;单引号后的内容是注释,不会执行。通常一行写一条语句,也可以用冒号分隔同一行中的多条简单语句,但初学阶段建议分行书写。多行IF和循环必须成组结束,并使用缩进标明代码块层次。

  • DIM age AS INTEGER声明整数变量age。
  • DIM price AS DOUBLE声明小数变量price。
  • DIM name AS STRING声明字符串变量name,不必使用name$;QB64也兼容以$结尾的字符串变量写法。
  • price = 20表示把数值20赋给price。
  • ' 这是注释,QB64不会执行这一行。
  • 常用算术运算符:+、-、*、/、和MOD分别用于加、减、乘、普通除法、整数除法和求余;括号可以明确运算顺序。
  • 常用比较运算符:=、<>、>、<、>=、<=;逻辑运算符AND、OR和NOT可组合多个条件。

输入、计算与输出

INPUT负责接收键盘输入,PRINT负责显示文本、变量或表达式。提示文字后使用分号,可以让用户在同一行输入。下面的完整程序展示数值赋值、字符串输入、计算和输出。输入数值时应只输入QB64能够解析的数字,否则程序会要求重新输入。

  • 完整代码:

    DIM name AS STRING
    DIM price AS DOUBLE
    
    price = 20
    INPUT "请输入姓名:", name
    PRINT "你好,"; name
    PRINT "商品价格的两倍是:"; price * 2
    END
  • 输入示例:小明
  • 预期输出: 请输入姓名:小明 你好,小明 商品价格的两倍是:40

  • 逐行说明:DIM分别声明字符串和小数变量;price = 20完成赋值;INPUT保存姓名;第一个PRINT连接文字与姓名,第二个PRINT计算并显示price * 2。

条件判断

多行条件结构必须由IF...THEN开始,以END IF结束;需要处理条件不成立的情况时,可在中间加入ELSE。下面的程序读取分数并判断是否及格,同时单独拦截超出0到100范围的输入。

  • 完整代码:

    DIM score AS DOUBLE
    
    INPUT "请输入0到100之间的分数:", score
    
    IF score < 0 OR score > 100 THEN
        PRINT "输入无效"
    ELSE
        IF score >= 60 THEN
            PRINT "及格"
        ELSE
            PRINT "不及格"
        END IF
    END IF
    
    END
  • 输入与输出示例:输入75时输出“及格”;输入59时输出“不及格”;输入120时输出“输入无效”。
  • 逐行说明:外层IF检查输入范围;只有分数有效时才进入内层IF;内层IF以60为边界选择两个分支;两个代码块分别用END IF结束。
  • 练习:把程序改成90分及以上输出“优秀”,60到89分输出“及格”,其余输出“不及格”。答案中的核心结构为:

    IF score >= 90 THEN
        PRINT "优秀"
    ELSEIF score >= 60 THEN
        PRINT "及格"
    ELSE
        PRINT "不及格"
    END IF

FOR循环

FOR循环适合重复次数已知的任务。循环变量从起始值变化到结束值,每轮执行缩进后的循环体,NEXT负责进入下一轮。下面的程序输出1到5并计算它们的总和。

  • 完整代码:

    DIM i AS INTEGER
    DIM total AS INTEGER
    
    total = 0
    FOR i = 1 TO 5
        PRINT i
        total = total + i
    NEXT i
    
    PRINT "总和:"; total
    END
  • 预期输出:依次显示1、2、3、4、5,最后显示“总和:15”。
  • 逐行说明:total先从0开始;FOR建立1到5的循环范围;循环体输出i并把它累加到total;NEXT i更新循环变量并检查是否继续。
  • 练习:输出2、4、6、8、10。答案中的循环为:

    FOR i = 2 TO 10 STEP 2
        PRINT i
    NEXT i

WHILE循环

WHILE...WEND适合循环次数取决于条件的场景。程序进入每轮前检查条件,因此必须在循环体内更新参与判断的变量,否则可能形成无限循环。下面的示例完整包含初始值、条件、循环体、变量更新和结束语句。

  • 完整代码:

    DIM count AS INTEGER
    
    count = 0
    WHILE count < 5
        PRINT "当前值:"; count
        count = count + 1
    WEND
    
    PRINT "循环结束"
    END
  • 预期输出:依次显示当前值0到4,最后显示“循环结束”。
  • 逐行说明:count = 0设置初始值;WHILE在count小于5时进入循环;count = count + 1保证条件最终不成立;WEND与WHILE配套。
  • 练习:让程序从5倒数到1。答案中的核心代码为:

    count = 5
    WHILE count >= 1
        PRINT count
        count = count - 1
    WEND

完整实例:计算两个数的和

下面的程序把声明、输入、计算和输出组合起来,可以直接复制到QB64中运行。测试时可分别输入正数、负数、小数和零。

  • 完整代码:

    DIM a AS DOUBLE
    DIM b AS DOUBLE
    DIM total AS DOUBLE
    
    INPUT "请输入第一个数:", a
    INPUT "请输入第二个数:", b
    total = a + b
    PRINT a; " + "; b; " = "; total
    END
  • 输入示例:12.5和-2.5
  • 预期输出:12.5 + -2.5 = 10
  • 逐行说明:三个DIM语句声明两个输入值和一个结果变量;两条INPUT依次读取数字;加法表达式把结果保存到total;PRINT在一行中显示算式和结果。
  • 练习:把程序改成计算两个数的平均值。答案:将计算语句改为total = (a + b) / 2,并把输出提示改为“平均值”。

过程设计:使用SUB复用代码

SUB过程用于封装一组可重复调用的语句。主程序前可以用DECLARE SUB声明过程的名称和参数,随后通过CALL调用;过程定义写在主程序END之后,并以END SUB结束。参数类型应与调用时传入的变量类型一致。

  • 完整代码:

    DECLARE SUB ShowSum (a AS DOUBLE, b AS DOUBLE)
    
    DIM first AS DOUBLE
    DIM second AS DOUBLE
    
    INPUT "请输入第一个数:", first
    INPUT "请输入第二个数:", second
    CALL ShowSum(first, second)
    END
    
    SUB ShowSum (a AS DOUBLE, b AS DOUBLE)
        DIM result AS DOUBLE
        result = a + b
        PRINT "两数之和:"; result
    END SUB
  • 输入示例:8和3;预期输出:“两数之和:11”。
  • 逐行说明:DECLARE SUB让主程序提前知道过程签名;CALL把first和second传给过程;SUB内部计算并输出结果;局部变量result只在该过程中使用。
  • 练习:新增ShowProduct过程输出两数之积。答案中的过程定义为:

    SUB ShowProduct (a AS DOUBLE, b AS DOUBLE)
        PRINT "两数之积:"; a * b
    END SUB
    同时需要在程序开头声明该过程,并在主程序中调用它。

调试常见错误

QB64在编译阶段会指出多数语法错误,但结果不正确的逻辑错误需要结合输入和中间值定位。先阅读编辑器标出的错误行,再检查代码块是否完整、变量是否正确更新以及条件边界是否符合题意。必要时临时加入PRINT输出变量值。

  • 语法错误示例:

    IF score >= 60 THEN
        PRINT "及格"
    错误原因:多行IF缺少结束语句。修正方法是在PRINT之后添加END IF。
  • 语法错误示例:

    WHILE count < 5
        PRINT count
        count = count + 1
    错误原因:WHILE结构不完整。修正方法是在循环体后添加WEND。
  • 逻辑错误示例:

    total = 0
    FOR i = 1 TO 5
        total = i
    NEXT i
    PRINT total
    程序能够运行,却只输出5,因为每轮都用i覆盖total。修正为total = total + i后,输出结果为15。
  • 无限循环示例:

    count = 0
    WHILE count < 5
        PRINT count
    WEND
    错误原因:count没有更新。应在WEND之前加入count = count + 1。

方言兼容性说明

本文只以QB64为教学和运行环境,不混用其他方言。QB64兼容许多QBasic写法,包括字符串变量后缀$、WHILE...WEND和可选的LET。早期BASIC可能强制使用行号及GOTO;FreeBASIC的部分编译选项、类型和过程语法有所不同;Small Basic则使用不同的对象和事件模型。把示例迁移到其他环境时,应集中核对变量声明、字符串类型、循环结束关键字、过程声明和运行命令,不要在同一个程序中随意拼接不同方言的语法。

学习QB64的有效方式是复制并运行每个完整程序,再修改输入、边界值和运算表达式观察结果。掌握本教程中的类型、输入输出、条件、循环、SUB过程和基本调试方法后,可以继续学习数组、字符串处理、FUNCTION函数、文件读写和图形编程。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多