ホームページ  >  記事  >  バックエンド開発  >  「input.Scan()」には「end」入力を処理するために「if」句が必要ですか?

「input.Scan()」には「end」入力を処理するために「if」句が必要ですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-11 21:57:03913ブラウズ

Does `input.Scan()` Require an `if`-Clause to Handle

if 節を使用しない input.Scan() の抜け出し

コード内で、次のような if 節を削除しようとしています。 「終了」入力を処理します。 if 句が必要かどうかを明確にするために、input.Scan() のドキュメントを調べてみましょう。

ドキュメントによると、input.Scan() は次のトークンに進み、スキャンが終了すると false を返します。入力の終わりに達するかエラーが発生します。ただし、input.Scan() のデフォルトの分割関数は ScanLines であり、末尾の行末マーカーを付けずにテキストの各行を返します。

ここで注意すべき 2 つの重要な点は次のとおりです。

  1. ScanLines は空行を処理します: これは、空行を次のように返すことを意味します。
  2. 空でない最後の行は改行なしで返されます: 入力の最後の行が空でない場合は、改行が欠けていても返されます。

したがって、空行を入力しても (Enter キーを押しても) スキャナーは終了しません。空の行をトークンとして返すだけです。スキャナーは、

  • ファイルの終わり (EOF) に達した場合にのみ実行を停止します。 これは、Ctrl-D を入力するか、別の方法を使用して、 end of input.
  • スキャン中にエラーが発生しました: 基本的にこれは起こりそうにありません

この理解に基づくと、空の入力をチェックするために if 節を含める必要はありません。 EOF に達すると、スキャナは自動的にループから抜け出します。

要約すると、ユーザーが「end」と入力するか EOF に達すると、ループを抜け出して、コードは意図したとおりに動作し続けます。 if 節。

以上が「input.Scan()」には「end」入力を処理するために「if」句が必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。