learnxinyminutes-docs/zh-cn/bc.md
2024-12-08 23:20:53 -07:00

95 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
contributors:
- ["Btup"]
translators:
- ["CloneWith", "https://github.com/CloneWith"]
filename: learnbc.bc
---
```bc
/*这是一条
多行注释。*/
# 这(在 GNU bc 中)也是一条(单行)注释!
/*1. 变量与指令结构*/
num = 45 /*所有变量都只以双精度浮点数形式存储,
并且 bc 不支持直接存储字符串常量。*/
num = 45; /*每个语句后可以添加
一个英文分号,也可以不加。*/
/*语句块使用 {} 运算符表示(与 C 语言相似):*/
while(num < 50) {
num += 1 /*等价于 num=num+1。
a = a op b 等价于 a op= b。*/
}
/*也有 ++(自加)与 --(自减)运算符。*/
/*有三个特殊变量:
scale: 定义双精度浮点数字的比例。
ibase: 定义输入数值的基数。
obase: 定义输出数值的基数。*/
/*If 语句:*/
hour = read() /*输入一个数字*/
if(hour < 12) { /*运算符的用法与 C 语言类似。*/
print "Good morning\n" /*“print”输出字符串或变量用英文逗号分隔。*/
} else if(hour == 12) {
print "Hello\n"
/*字符串中的转义序列以反斜杠 \ 开头。
为了讲述清楚,以下为 bc 中常用转义序列表:
\b: 退格
\c: 硬回车
\n: 换行符
\t: 制表符
\\: 反斜杠*/
} else {
print "Good afternoon\n"
}
/*像 C 语言一样,只有 0 定义为假false。*/
num = 0
if(!num) {print "false\n"}
/*与 C 语言不同bc 没有 ?: 运算符。例如,
这个代码块会导致出错:
a = (num) ? 1 : 0
但是你可以模拟一个:*/
a = (num) && (1) || (0) /*&& 代表“与”,|| 代表“或”*/
/*循环语句*/
num = 0
for(i = 1; i <= 100; i++) {/*与 C 语言中的循环类似。*/
num += i
}
/*2.函数与数组*/
define fac(n) { /*使用“define”定义函数。*/
if(n == 1 || n == 0) {
return 1 /*返回一个数值*/
}
return n * fac(n - 1) /*可以使用递归*/
}
/*不可使用闭包与匿名函数。*/
num = fac(4) /*24*/
/*这是局部变量的示例:*/
define x(n) {
auto x
x = 1
return n + x
}
x(3) /*4*/
print x /*看起来无法在函数外访问 x。*/
/*数组与 C 语言中的等同。*/
for(i = 0; i <= 3; i++) {
a[i] = 1
}
/*这样访问它:*/
print a[0], " ", a[1], " ", a[2], " ", a[3], "\n"
quit /*添加这行代码,确保程序退出。
这行代码可写可不写。*/
```
请享用这个简单的计算器吧!(或者确切地讲,这个编程语言。)
本程序全部使用 GNU bc 语言编写。要运行程序,请使用 ```bc learnbc.bc```。