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和循环必须成组结束,并使用缩进标明代码块层次。
DIMageASINTEGER声明整数变量age。DIMpriceASDOUBLE声明小数变量price。DIMnameASSTRING声明字符串变量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为边界选择两个分支;两个代码块分别用ENDIF结束。 练习:把程序改成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;NEXTi更新循环变量并检查是否继续。 练习:输出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函数、文件读写和图形编程。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- basic语言 知乎
- 时间:2026-08-11
-
- basic语言编程
- 时间:2026-08-11
-
- basic语言基础 QBASIC语法变量循环与练习
- 时间:2026-08-11
-
- basic语言吗? Basic特点、版本区别与QB64入门
- 时间:2026-08-10
-
- basic语言代码示例 变量循环数组与子程序
- 时间:2026-08-10
-
- basic语言应用实例 4个可运行程序与调试方法
- 时间:2026-08-10
-
- basic语言怎么学 版本选择计划与示例代码
- 时间:2026-08-10
-
- basic语言入门教程 FreeBASIC安装语法与成绩统计
- 时间:2026-08-10
精选合集
更多大家都在玩
大家都在看
更多-
- 以下哪种食材被称为“地下苹果” 蚂蚁庄园今日答案9.18
- 时间:2026-09-17
-
- 蚂蚁庄园今天答题答案2026年9月18日
- 时间:2026-09-17
-
- 蚂蚁庄园答题今日答案2026年9月18日
- 时间:2026-09-17
-
- 蚂蚁庄园小课堂2026年9月18日最新题目答案
- 时间:2026-09-17
-
- 小鸡答题今天的答案是什么2026年9月18日
- 时间:2026-09-17
-
- 蚂蚁庄园每日答题答案2026年9月18日
- 时间:2026-09-17
-
- 蔬菜洗完掉色,说明是被染色了,是真的吗 蚂蚁庄园今日答案9月18日
- 时间:2026-09-17
-
- 满襟蜡绘花纹巧染就花纹当绣裳说的是哪种传统技艺 蚂蚁新村今日答案2026.9.17
- 时间:2026-09-17