2013-09-28 12 views
0

有一個while循環,當我只有一條線路把它寫,它是確定爲什麼條件表達式在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" 

我該如何修改它作爲兩行?我認爲這是更好的拖曳線複雜的表達。

+1

使用'&&'和'||' –

+0

並使用空格。 「成本<-100」不是「成本<-100」。 –

+0

@JoshuaUlrich我認爲他打算分配。 –

回答

1

在條件A 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 
}) 
{ 
    ... 
} 
0

我想這就是你要做的?

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

這並不完全相同,因爲這會導致'cost'僅被評估一次,而在原始代碼中,它將被循環中的每次迭代(重新)評估。 –

+0

@HongOoi好點。他們可能想要更接近您的解決方案。 –

0

你應該同時使用狀況大括號以組表達式。

# 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 
相關問題