2017-08-21 12 views
-7

このクラスでは無限ループが続きますが、今度はそれは間違いなく.ExNote()から来ていますが、なぜ私には分かりません。私はここにそれを単純化してきたあなたが行く:クラス内の無限ループ

class Note(): 
    x=[0] 
    y=[0] 
    def __init__(self, Num, staff, note, notetype): 
     self.staff = staff 
     self.note = note 
     self.notetype = notetype 
     self.Num=Num 
    def ExNote(self):      
     screen.blit(self.notetype, (self.x[self.Num], self.y[self.Num])) 
     print('exnote') 
going = True 
while going: 
    screen.fill(white) 
    Note(0, '0R', '40', EthnoteIMG).ExNote() 

returrns

exnote 
exnote 
exnote..... 

なぜそれが一度機能を実行した後に停止しないのですか?

+2

...真剣に? 'while going:'は無限ループです。 – user2357112

+0

ループするように指示する以外は何もしないので。コードを読んでください。 '行っている間:' - ループするのをやめさせるために「行く」ように変化するものはどこにありますか?また、関数を一度呼び出すだけの場合は、なぜループを使用していますか?ループは**繰り返されるものです**。 –

+0

ああ、画像を何度も何度も鳴らすためにクラス関数をループしているので、それがどういう仕組みかわかりませんでした。私はちょうど私が最初にこの仕事を持っている方法を知らない –

答えて

-2

真の間、あなたのコードの末尾

でブレーク機能を挿入してください:ループです: "行くことながら、" それを

+7

あなたは一回の呼び出しの後に休憩を入れれば、全くループを持つ理由はありません、ありますか? –

+0

ループの必要はありません... ifステートメントは実行しますが、既にループがあるので... breakを使用する必要があります。 –

+0

ええええええええええええええええ。何も繰り返したくない場合は、ループを削除してください。 –

1

を殺す必要があります のBla blabla Blablabla ブレーク

。停止するには、ループ内でFalseに設定する必要があります。表示したコードだけで、whileループは不要で、完全に削除することができます。あなたはコードの一部しか表示していないと言いましたので、ループをいつ止めるべきかを決めるために残しておきます。

class Note(): 
    x=[0] 
    y=[0] 
    def __init__(self, Num, staff, note, notetype): 
     self.staff = staff 
     self.note = note 
     self.notetype = notetype 
     self.Num=Num 
    def ExNote(self):      
     screen.blit(self.notetype, (self.x[self.Num], self.y[self.Num])) 
     print('exnote') 
going = True 
while going: 
    screen.fill(white) 
    Note(0, '0R', '40', EthnoteIMG).ExNote() 
    if <your stop condition>: 
     going = False # You need to set going to False inside your loop to get it to stop 

    OR 

    going = <some function that returns false when appropriate>