出于好奇,有没有人知道使用“反向”if / then语句的语言?
例如,
if(a == b) {
doC();
}
在大多数语言中都是
{
doC();
} if(a == b)
用这种语言。
我知道它在大多数语言(例如C#,例如C#)中都无法正常执行,从左到右执行,但是否有使用或支持这种语法的语言?
答案 0 :(得分:5)
当然,你可以在Perl中做到这一点。这样:
if (a == b) {
doC();
}
可以这样写:
do {
doC();
} if (a == b);
它通常用于使前提条件更容易阅读:
while (<>) {
last if /<END>/; # Exit loop if current line contains "<END>".
print;
}
Ruby从Perl借用了这个功能。
答案 1 :(得分:1)
答案 2 :(得分:1)
Ruby,Python(如LưuVĩnhPhúc所说)支持这种风格 这是Ruby的方式:
puts :hello if true
在Moonscript中有"line decorators":
print "hello world" if name == "Rob"
他们与Ruby的ifs略有不同,所以我将它们放入另一个类别。
另一组是基于连接或堆栈的编程语言。您可以阅读更多相关信息here 他们并没有完全按照你所描述的那样做,但他们很接近 在Factor中你可以写:
10 3 <
[ "yes" ]
[ "no" ]
if
我相信条件恰好在if
之前的语法是可能的。在所有10 3 <
被评估为f
(因子的假值)后,所以f
在堆栈中的位置无关紧要。
答案 3 :(得分:0)
php中的do while
循环怎么样?当然,代码总是会在do循环中执行至少,但它会部分执行您可能要查找的内容。
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>