Differences between revisions 11 and 12
Revision 11 as of 2018-10-02 02:15:52
Size: 3403
Comment:
Revision 12 as of 2018-10-04 05:30:33
Size: 3431
Comment:
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
----
<<TableOfContents(3)>>



制御構造:条件が成立している間の反復:While

概要

[ edit ]

  • 条件~が成立している間,繰り返す
    • while は「~のあいだ」を意味する

文法

[edit]

   1 "while" <<条件式expression>> ":"
   2     <<ブロックsuite>>
   3          ...
   4 ["else:"
   5     <<ブロックsuite>>
   6          ...]

いろいろな使い方

カウントアップ

  • 制御変数nでカウントする

   1 n = 0
   2 while n < 10:
   3     print( n )
   4     n += 1

0
1
2
3
4
5
6
7
8
9
  • 同等なfor文

   1 for n in range(10):
   2     print( n )

0
1
2
3
4
5
6
7
8
9

カウントダウン

  • 制御変数nでカウントする

   1 n = 10
   2 while n > 0:
   3     print(n)
   4     n -= 1

10
9
8
7
6
5
4
3
2
1
  • 同等なfor文

   1 for n in range( 10, 0, -1): 
   2     print(n)

10
9
8
7
6
5
4
3
2
1

無限ループを作って,breakでループ脱出する

[edit]

   1 n = 0
   2 while True:
   3     print( n )
   4     if n >= 7:
   5         break
   6     n += 1

0
1
2
3
4
5
6
7
  • キーボードから,特定の入力(以下では,半角大文字のエックス)がされるまで,入力がくりかえさせるパターン

   1 print( "X(半角大文字のエックス)が入力されるまで,キーボードからの入力を繰り返す" )
   2 while True:
   3     data_string = input("何か入力してください>>> ")
   4     if data_string == "X":
   5         print( "終了します" )
   6         break
   7     print( "---- 入力[" + data_string + "]に対して何か処理をします\n" )

何か入力してください>>> 1
---- 入力[1]に対して何か処理をします

何か入力してください>>> 2
---- 入力[2]に対して何か処理をします

何か入力してください>>> 3
---- 入力[3]に対して何か処理をします

何か入力してください>>> 4
---- 入力[4]に対して何か処理をします

何か入力してください>>> X
終了します

else節

[edit]

  • else節 がある場合は,ループの最後に else節を実行する

   1 n = 0
   2 while n < 10:
   3     print( n )
   4     n += 1
   5 else:
   6     print( "無事,終了しました" )

0
1
2
3
4
5
6
7
8
9
無事,終了しました
  • breakした場合は,else節は実行されない

   1 n = 0
   2 while n < 10:
   3     print( n )
   4     if n == 5:
   5         break
   6     n += 1
   7 else:
   8     print( "無事,終了しました" )

0
1
2
3
4
5

SoftEng: Python/Lang/ControlStructure/Loop/WhileStatement/Contents (last edited 2018-10-04 05:30:33 by TadashiIijima)