2012-04-22 13 views
-2

可能性の重複:
Python Leave Loop Early早いPythonでループを終了

ので

、私はそれが否定されるまで、別の番号から番号を取るためにそれを必要とするPythonでループを持っています減算するたびにメッセージが表示されます。問題は、変数が最初の条件に合っている場合、条件に合ったループ全体を通過し、毎回メッセージを出力することです。

sb = bosshp12 - final 
if sb <= 0: 
    print('You need to do 1 second of damage to get a 4% Soulbound. ') 
sb - final 
if sb <= 0: 
    print('You need to do 2 seconds of damage to get a 4% Soulbound. ') 

if文番号が既に< 0最初にあるのであれば、それはまだ通過します。私は右のそれを得た場合は、ループがsb <= 0

+7

私はあなたの例ではループを見ません... – georg

+2

ループも 'sb-final'は何もしません、' sb = sb -final'または短縮したい: 'sb- = final' – jamylak

+11

私は嫌いですあなたは本当に[このチュートリアルを読む]必要があります(http://docs.python.org/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops)。 – senderle

答えて

0

後にブレークしたい、すべてそのコードはwhileループの下で、あなただけのOHまたのelif文が合うことができるようだbreak文

sb = bosshp12 - final 
    if sb <= 0: 
      print('You need to do 1 second of damage to get a 4% Soulbound. ') 
      break 
    sb - final 
    if sb <= 0: 
      print('You need to do 2 seconds of damage to get a 4% Soulbound. ') 

を使用することができますあなたの必要性?

sb = bosshp12 - final 
     if sb <= 0: 
       print('You need to do 1 second of damage to get a 4% Soulbound. ') 
     sb - final 
     elif sb <= 0: 
       print('You need to do 2 seconds of damage to get a 4% Soulbound. ') 

その方法は、< = 0が最初のチェックにTrueでsbにあれば、もう一つはチェックされません。

+0

もし私が最初にタブを張ってしまうと、予期しないインデントが起こったと言われます。それはまたelifのための無効な構文を言った。 – user1349560

+1

あなたは同じ条件で 'elif'を使っていますか? –

関連する問題