Python で Do-while ループをシミュレートするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-25 10:31:12
オリジナル
949 人が閲覧しました

How Can I Simulate a Do-While Loop in Python?

Python での Do-while ループのエミュレーション

Python では、標準の while ループは条件ステートメントで動作します。ただし、条件を評価する前にコードのブロックを少なくとも 1 回実行する do-while ループが有益なシナリオもあります。

True Flag を使用したエミュレーション:

do-while ループをシミュレートするには、True フラグを使用します。

done = False
while not done:
    # Code block
    # Set 'done' to True to terminate the loop
    if condition:
        done = True
ログイン後にコピー

エミュレーションイテレータ:

もう 1 つの方法では、イテレータを使用します:

iterator = iter(my_list)

while True:
    try:
        element = next(iterator)
        # Code block
    except StopIteration:
        break
ログイン後にコピー

このアプローチでは、最初にイテレータを初期化することで do-while ループの動作をエミュレートします。例外「StopIteration」が発生しない場合 (反復する要素が他にもあることを示します)、コード ブロックは反復子から次の要素をフェッチする前に実行されます。

リスト内包表記の使用:

より単純なケースでは、リスト内包表記を利用して同様のことを実現することもできます。機能:

[print(i) for i in my_list]
ログイン後にコピー

特定の使用例:

質問で述べたように、do-while ループはステート マシン シナリオで役立つ可能性があります。ファイル解析タスクの例を次に示します。

for line in input_file:
    while True:
        if current_state == 'CODE':
            if '//' in line:
                # Handle comment state
                current_state = 'COMMENT'
            else:
                # Handle code state
        elif current_state == 'COMMENT':
            if '//' in line:
                # Handle comment state
            else:
                # Handle code state and break to evaluate the next line
                current_state = 'CODE'
                break
        # Break if there are no more lines to parse
        if not line:
            break
ログイン後にコピー

このシナリオでは、do-while ループを使用することで、ステート マシンの遷移と条件付けの間に、ファイル内の各行が少なくとも 1 回処理されることが保証されます。チェックはループの反復内で処理されます。

以上がPython で Do-while ループをシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート