我尝试了不同的运算符<,>等。当我将比较运算符与条件运算符结合使用时,似乎没有任何效果。
e = readline()
if e == 0
println("e is equal to 0")
else
println("e is not equal to 0")
end
预期结果很明显,如果e = 0,则打印e等于0,如果e!= 0,则打印e不等于0。
但是,它始终打印底行,e不等于0。
答案 0 :(得分:2)
这是因为readline
返回的字符串永远不会等于整数(根据==
Julia使用的定义)。
以下是实现所需目标的一些可能方法:
if e == "0"
tryparse
:if tryparse(Int, e) == 0
(如果nothing
不是数字文字,将返回e
)parse
,但使用try
/ catch
代替if
:
try
p = parse(Int, e)
p == 0 ? println("e is 0") : println("e is not 0")
catch
println("not even an integer.")
end
答案 1 :(得分:0)
if
返回您不期望的分支的原因是@phg给您的(您被String
得到了readline()
)。
对于我的代码,我使用以下函数来解析终端中提供的用户提供的数据:
function getUserInput(T=String,msg="")
print("$msg ")
if T == String
return readline()
else
try
return parse(T,readline())
catch
println("Sorry, I could not interpret your answer. Please try again")
getUserInput(T,msg)
end
end
end
sentence = getUserInput(String,"Which sentence do you want to be repeated?");
n = getUserInput(Int64,"How many times do you want it to be repeated?");
[println(sentence) for i in 1:n]
println("Done!")