2017-02-17 3 views
2

私は20歳後に給与の増加を計算しないようにするためにこのコードが必要です。ループ中に別のループを追加しようとしましたが、無限ループが発生しました。どんな助けでも大歓迎です!!Python whileループではbreak文が必要なのでしょうか?

RATE = 2.0 
INITIAL_SALARY = 37238.00 
salary = INITIAL_SALARY 
year = 1 

print("Murdock County") 
print("Teacher Salary Schedule") 
print() 
print("Year   Salary") 
print("----   ------") 



while year < 31 : 
    print("%4d %15.2f" % (year, salary)) 
    increase = salary * RATE/100 
    salary = salary + increase 
    year = year + 1 
+0

どのようにループ内であれば使用してはどうですか? –

+1

それはタイプミスですか? 'year <21'の代わりに' year <31'の間に?そうすれば、私が正しく理解すれば、あなたの問題を解決することができます。 – SuperSaiyan

+2

21歳で計算を止めますが、21年から31年間は変わらない給与を印刷しますか?もしそうなら、whileループの中では、そのトリックを行うべきです。 – paisanco

答えて

1

あなたは、おそらくそう

while year < 21 : 
    # your code 

それとも、おそらく21後の給与はそれほど増加しなくなったことを意味していない可能性があり、31の代わりに21を入力:

while year < 31 : 
    print("%4d %15.2f" % (year, salary)) 
    if year < 21: 
     increase = salary * RATE/100 
     salary += increase 
    year += 1 

forループは、ループの実行回数を知っているので代わりに使うことができます。おそらくv ariable INITIAL_SALARY、あまりにも多くのprint文を使用しないように胃袋、二重または単一引用符で囲まれた文字列を使用して:

RATE = 2.0 
salary = 37238.00 

print("""Murdock County 
Teacher Salary Schedule 

Year   Salary 
----   ------""") 


for year in range(1, 31): 
    print("%4d %15.2f" % (year, salary)) 
    if year < 21: 
     increase = salary * RATE/100 
     salary += increase 
    year += 1 
+0

はい、それは私が意味したものですが、21歳から30歳まで。 –

+0

@Imiguelvargasf、はい、ありがとう!私はif文を試しましたが、間違った場所に置いていました。私はPythonを学んでいるだけなので、本当に助けてくれてありがとう! –

+0

@AndrewN。あなたのお手伝いをさせていただきありがとうございます。私が私の答えに追加した提案のいくつかを検討していただければ幸いです。 – lmiguelvargasf

1
while year < 31 : 
    print("%4d %15.2f" % (year, salary)) 
    if year < 21: 
     increase = salary * RATE/100 
     salary = salary + increase 
    year = year + 1 
+0

21歳から30歳の間、変わらない給与が引き続き印刷されますか? –

+0

はい。 'salary'変数のスコープが' while'ループの外にあるので – vendaTrout

+0

優秀!私は以前のif文を試していましたが、間違った場所にいただけです...私はまだ笑を学んでいます –

関連する問題