为什么条件表达式在while循环中不能是两行?

时间:2013-09-28 13:41:25

标签: r

有一个while循环,当我只用一行写它时,没关系

while (money<100*i*(exercise_price-premium)+per_trade+i*per_contract)
{"omitted"} 

当我把它写成两行时,出了点问题。

while (cost<-100*i*(exercise_price-premium)+per_trade+i*per_contract;
money<cost)
{"omitted"} 


Error: unexpected symbol in:
"while (cost<-100*i*(exercise_price-premium)+per_trade+i*per_contract
money"

我如何将其修改为两条线?我认为拖线更精细的表达更好。

3 个答案:

答案 0 :(得分:1)

while内的条件必须是评估真/假结果的表达式。这对线

cost<-100*i*(exercise_price-premium)+per_trade+i*per_contract;
money<cost

两个语句/表达式,而不是一个。但是你可以通过将代码包装在大括号{}中来获得后者:

while({
    cost <- 100*i*(exercise_price-premium)+per_trade+i*per_contract
    money < cost
})
{
   ...
}

答案 1 :(得分:0)

我认为这就是你想要的?

cost <- 100*i*(exercise_price-premium)+per_trade+i*per_contract
while (money<cost)
{"omitted"} 

答案 2 :(得分:0)

你应该使用花括号在while条件下对表达式进行分组。

# This doesn't work
i <- 0
while(k <- i+1; k< 20) i <- i+1
# but this works
while({k <- i+1; k< 20}) i <- i+1