heheda11
V2EX  ›  问与答

有没有,没有 if else 的编程语言?

By heheda11 at 2021 年 7 月 6 日 · 5880 次点击

。。。。就问问 🤗🤗🤗

第 1 条附言  ·  2021 年 7 月 6 日
补充一下
没有任何类似于 IF else 的分支判断功能
36 条回复  •  2021-07-08 17:10:32 +08:00
AoEiuV020
   1
AoEiuV020  
   2021 年 7 月 6 日
汇编,
JamesMackerel
   2
JamesMackerel  
   2021 年 7 月 6 日
@AoEiuV020
汇编有无条件跳转和有条件跳转的指令,四舍五入就是 if else 。我猜想一个语言可以没有循环功能,但是条件分支应该是必须的。
banmuyutian
   3
banmuyutian  
   2021 年 7 月 6 日
机器码
phobal
   4
phobal  
   2021 年 7 月 6 日
如果 css 算编程语言的话它算是没 if else 吧
chiu
   5
chiu  
   2021 年 7 月 6 日
Bash?

[ -e ~/file.txt ] && cat ~/file.txt || echo "Hello" > ~/file.txt
NoDocCat
   6
NoDocCat  
   2021 年 7 月 6 日
@JamesMackerel 没有循环还可以用跳转和递归来处理重复任务, 但是没有条件分支这语言就啥都不能干了.
stx0821
   7
stx0821  
   2021 年 7 月 6 日
某些 esoteric language
///是一门由坦纳斯·韦特( Tanner Swett )在 2008 年发明的编程语言。该编程语言只含有一个操作符——“/”,功能是替换字符串。
EscYezi
   8
EscYezi  
   2021 年 7 月 6 日 via iPhone
brainfuck
TimePPT
   9
TimePPT  
   2021 年 7 月 6 日   ❤️ 1
理论上实现了全套逻辑门后,if else 就可以替换了
jy02201949
   10
jy02201949  
   2021 年 7 月 6 日
为什么要折磨自己
Leonard
   11
Leonard  
   2021 年 7 月 6 日
换成 switch case 呗
U7Q5tLAex2FI0o0g
   12
U7Q5tLAex2FI0o0g  
   2021 年 7 月 6 日
@phobal #4
css 的 media 写法也可以算的上是某种 if
aguesuka
   13
aguesuka  
   2021 年 7 月 6 日   ❤️ 1
https://en.wikipedia.org/wiki/Conditional_(computer_programming)

有些低级语言没有 if
有些上古语言只有 if 没有 else (some dialects of BASIC in the 1980s)
有些函数式语言没有 if 关键字, 但可以自己实现(lisp).
有些语言没有 if-else 关键字但可以通过模式匹配来实现.
aitaii
   14
aitaii  
   2021 年 7 月 6 日
记得有个语言是这样写的 +-+---+++++---++---
QingXuJiaZhi
   15
QingXuJiaZhi  
   2021 年 7 月 6 日
说清楚,是没有这个关键词,还是彻底没有任何形式的分支判断功能。
wangkun025
   16
wangkun025  
   2021 年 7 月 6 日
顺序、分支、循环三种结构
缺了分支,循环也只能是死循环。
应该实现不了。

不行的话,替换下关键字,把 if 变成别的啥。
L5tEU4WX072p5P42
   17
L5tEU4WX072p5P42  
   2021 年 7 月 6 日 via iPhone
@TimePPT 此话怎讲?
wellsc
   18
wellsc  
   2021 年 7 月 6 日
@chiu if fi?
chiu
   19
chiu  
   2021 年 7 月 6 日 via Android
@wellsc #18
开玩笑的🐶
MakeItGreat
   20
MakeItGreat  
   2021 年 7 月 6 日 via Android
Css 判断屏幕尺寸不就是个 if else?
eason1874
   21
eason1874  
   2021 年 7 月 6 日
除非把 markup language 也算作 programming language,否则不可能没有条件判断,这是编程最基础的东西了。
iceheart
   22
iceheart  
   2021 年 7 月 6 日 via Android
XML,HTML
amimo
   23
amimo  
   2021 年 7 月 6 日
用楼上老哥们说的 switch-case 貌似就可以。比如比较两数,可以将他们减,使用得数的符号位(正负)判断他们的大小。

int32_t min(int32_t a, int32_t b)
{
int c = ((a - b) >> 31) & 1; // 取(a - b) 符号位 0, 1
switch (c) {
case 0:
return b;
case 1:
// c == 1 => a - b < 0 -> a < b
return a;
}
}
CosimoZi
   24
CosimoZi  
   2021 年 7 月 6 日
理解一下图灵机
explore365
   25
explore365  
   2021 年 7 月 6 日
什么,计算机不是二进制的?
mxT52CRuqR6o5
   26
mxT52CRuqR6o5  
   2021 年 7 月 6 日
没有分支判断的话实现不了图灵完备吧,brainfuck 也是有分支判断的
Tink
   27
Tink  
   2021 年 7 月 6 日 via Android
how to make love 没有判断
inhzus
   28
inhzus  
   2021 年 7 月 6 日 via iPhone
广义的来说应该都有,如果只是狭义的 if else,指没有类似代码块形式的,C++ 模板语言偏特化可以算一个
kaneg
   29
kaneg  
   2021 年 7 月 6 日
计算机基础里提到过一门完整的语言必须具备以下三个条件:
顺序
条件
循环
icyalala
   30
icyalala  
   2021 年 7 月 6 日
如果你说的是 "没有分支判断" 的 "图灵完备" 语言,那没有。
pkookp8
   31
pkookp8  
   2021 年 7 月 6 日 via Android
#define if while
狗头保命
msg7086
   32
msg7086  
   2021 年 7 月 7 日 via Android
从定义上就不满足了。没有判断的不能叫编程语言。
zk8802
   33
zk8802  
   2021 年 7 月 7 日
fo0o7hU2tr6v6TCe
   34
fo0o7hU2tr6v6TCe  
   2021 年 7 月 7 日
icyalala
   35
icyalala  
   2021 年 7 月 7 日
@zk8802 看来是我想当然了。。去搜了一下资料:
mov 是图灵完备的:
https://web.archive.org/web/20190331191157/https://www.cl.cam.ac.uk/~sd601/papers/mov.pdf
其他各种奇葩实现:
https://en.wikipedia.org/wiki/One-instruction_set_computer
甚至还有更奇葩的:
https://github.com/jbangert/trapcc
hu8245
   36
hu8245  
   2021 年 7 月 8 日
换个行业吧
© 2026 V2EX · 127ms · 3.9.8.5