所以,我想知道/要求; 是否可以在APL中执行If语句?如果是这样的话?
这是我的代码
'Please enter a number to count to: '
number ??
?number
Run Code Online (Sandbox Code Playgroud)
我如何获得一个if语句,如果用户输入的数字超过100,它将打印出"太高"并结束; 或者如果它是100或者那么它会继续吗?
谢谢!
小智 7
在 Dyalog APL 中,你有一个整洁的小东西,叫做守卫。
它们可用于 dfns 并在特定条件匹配时评估代码。
func ? {?>100 : 'too high' ? 1 : 'number is ok'}
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您的APL支持控制结构,那么这应该工作:
? generateAll number
:If number>100
??'Too high'
:else
??? number
:endif
?
Run Code Online (Sandbox Code Playgroud)
如果它不支持控制结构(如APL2),则需要分支:
? generateAll number
?(number>100)/error
??? number
?0
error:
??'Too high'
?
Run Code Online (Sandbox Code Playgroud)
您也可以使用像execute这样的技巧,但这样做的可读性较差.