编辑“︁
BASIC
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
==BASIC語言的種類== 以下是同樣的執行結果,但用不同時期的BASIC的方式所寫的範例。 ===行號類型(非結構化)=== 這是第一代的BASIC,例如早期[[BASICA]]、[[GW-BASIC]]……等,BASIC直譯器。這類的BASIC程式的特徵,就是每一行的程式碼前面都有一個數字作為「[[行號 (程式語言)|行號]]」。由於這種類型的BASIC程式的寫法,很容易濫用GOTO的跳躍指令,以及程式碼沒有辦法使用到縮排去區分區段,因此很容易導致[[面条式代码]]。 <syntaxhighlight lang="QBasic"> 10 INPUT "What is your name: ", U$ 20 PRINT "Hello "; U$ 30 INPUT "How many stars do you want: ", N 40 S$ = "" 50 FOR I = 1 TO N 60 S$ = S$ + "*" 70 NEXT I 80 PRINT S$ 90 INPUT "Do you want more stars? ", A$ 100 IF LEN(A$) = 0 THEN GOTO 90 110 A$ = LEFT$(A$, 1) 120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30 130 PRINT "Goodbye "; U$ 140 END </syntaxhighlight> ===無行號類型(結構化)=== 這是第二代的BASIC,例如[[QuickBASIC]]、[[PowerBASIC]]。這時期,同時有功能相近的直譯器與編譯器的版本出現。這類的BASIC程式的特徵,是不使用行號,改使用標籤作為跳躍點(仍有GOTO指令,但已可使用其他寫法可完全避開使用GOTO),與使用函數或副程式的方式,以及可使用縮排,將程式結構化。<ref name="GBvsQB">{{cite web|url=http://support.microsoft.com/kb/73084|title=Differences Between GW-BASIC and QBasic|date=2003-05-12|accessdate=2008-06-28|author=|archive-date=2013-10-19|archive-url=https://web.archive.org/web/20131019181140/http://support.microsoft.com/kb/73084|dead-url=no}}</ref> <syntaxhighlight lang="QBasic"> INPUT "What is your name: ", UserName$ PRINT "Hello "; UserName$ DO INPUT "How many stars do you want: ", NumStars Stars$ = STRING$(NumStars, "*") PRINT Stars$ DO INPUT "Do you want more stars? ", Answer$ LOOP UNTIL Answer$ <> "" Answer$ = LEFT$(Answer$, 1) LOOP WHILE UCASE$(Answer$) = "Y" PRINT "Goodbye "; UserName$ </syntaxhighlight> ===物件導向化=== 這是第三代的BASIC,例如[[Visual Basic]]、[[REALbasic]]、[[StarOffice Basic]]。這類的BASIC程式的特徵,是導入[[類別 (電腦科學)|類別]](Class)的應用,使用[[物件導向]]的[[繼承 (電腦科學)|繼承]]與程式碼封裝寫法。通常也使用「[[事件驅動]]」的寫法,雖然下面這個[[Visual Basic .NET]]的範例並不是用到事件驅動。 <syntaxhighlight lang="vbnet"> Public Class StarsProgram Public Shared Sub Main() Dim UserName, Answer, stars As String, NumStars As Integer Console.Write("What is your name: ") UserName = Console.ReadLine() Console.WriteLine("Hello {0}", UserName) Do Console.Write("How many stars do you want: ") NumStars = CInt(Console.ReadLine()) stars = New String("*", NumStars) Console.WriteLine(stars) Do Console.Write("Do you want more stars? ") Answer = Console.ReadLine() Loop Until Answer <> "" Answer = Answer.Substring(0, 1) Loop While Answer.ToUpper() = "Y" Console.WriteLine("Goodbye {0}", UserName) End Sub End Class </syntaxhighlight>
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息