2017-11-16 17 views
-1

私は "ブレークループ"を働かせることに問題があります。エラーが発生しないので、何が起こっているのかわかりません。私がLEDを点滅させるようにスクリプトに指示すると、オプション3になります。もともと私は、あなたのループを実行し、ループが実行されている間MainMenuに戻る方法がある場合、いくつかの方法を検討していましたが、それはオプションではなかったので、レンジ(10):」与えられた番号の後にループを中断する

def loop(): 
    while True: 
     os.system('clear') 
     print 
     print ('1. ON') 
     print ('2. OFF') 
     print ('3. Blink') 
     print 
     choice = int(raw_input('1-[ON], 2-[OFF]: ')) 
     if choice == 1: 
      print 
      print ('Turning ON') 
      GPIO.output(LedPin, GPIO.LOW) # Led ON 
     elif choice == 2: 
      print 
      print ('Turning OFF') 
      GPIO.output(LedPin, GPIO.HIGH) # Led OFF 
     elif choice == 3: 
      number = 0 
      for number in range(10): 
       number = number + 1 
       if number == 5: 
        break 
        GPIO.output(LedPin, GPIO.LOW + str(number)) # Led ON 
        time.sleep(0.05) 
        GPIO.output(LedPin, GPIO.HIGH + str(number)) # Led OFF 
        time.sleep(0.05) 
       #print ('Number is ' + str(number)) 

この例では、正常に動作します:

number = 0 

for number in range(10): 
    number = number + 1 

    if number == 5: 
     break # break here 

    print('Number is ' + str(number)) 

print('Out of loop') 

出力:私はこれがすべてで役立つかどうかを知り、多分やめ使ってみてはいけない

Number is 1 
Number is 2 
Number is 3 
Number is 4 
Out of loop 
+3

それはコマンドが*あなた 'break'後*書き込みにあまり意味がない場合には、光を切り替えたいです。あなたの質問は明確ではありません - あなたが何をしようとしているのか*どのようにして達成したいのかを説明しようとしないでください。 – alfasin

+1

なぜ範囲ループ内で 'number = number + 1'を使用していますか? –

+0

これについて何も意味をなさない。あなたはそれが何をすべきかを明確に記述できますか?点滅オプションは、5に達するまで何もしません。さらに何もしませんが、何も点滅しません。 – hobbs

答えて

-2

かwhileループinste

番号== 5:のような広告
は、あなたがブレークを使用している場合でもしかし、それはそれの後にコードを書くことに意味を作る、ので、多分しない(これはあなたのプログラムの停止を行います)

を終了それを後にして動作するかどうかを確認するコードをコメントしてください。

+0

は擬似コードであり、何もしません。 – Cyzanfar

0

私が正しく理解していれば、あなたは数== 5

 elif choice == 3: 
      for number in range(0,5): 
       GPIO.output(LedPin, GPIO.LOW + str(number)) # Led ON 
       time.sleep(0.05) 
       GPIO.output(LedPin, GPIO.HIGH + str(number)) # Led OFF 
       time.sleep(0.05) 
      #print ('Number is ' + str(number)) #will be 4, went 5 times 
+0

彼はリードが5回点滅したいと思う?質問があまり意味がないので100%確かではありません。 – Cyzanfar

+0

はい私は点滅(ループ)を5回欲しい0回 – Petr

+0

私は5回目の点滅に私の答えを編集しました – danep

関連する問題