エラーがなかったのに、catchブロックでブール値が変わるのはなぜですか?

OthManē

私はまだc#を学んでいて、この問題に遭遇しました。ユーザーが整数を入力することを確認するプログラムを作りたかったのです。しかし、これを行うと、無限ループに陥ります。なぜブールb; ユーザーが整数を入力した場合でも、変数はcatchブロックの値を変更しますか?私のコード:

class MainClass
{
    public static void Main (string[] args)
    {
        int n= 0;
        bool b = true;
        do {
            try {
                Console.WriteLine ("Enter an integer : ");
                n = Convert.ToInt32 (Console.ReadLine ());
            } catch (Exception e) {
                Console.WriteLine (e.Message);
                b = false;
            } finally {
                Console.WriteLine (n);
            }
        } while(b == false);
    }
}

しかし、私はこれをしたときに問題を修正しました:

class MainClass
{
    public static void Main (string[] args)
    {
        int n= 0;
        bool b;
        do {
            try {
                b = true;
                Console.WriteLine ("Enter an integer : ");
                n = Convert.ToInt32 (Console.ReadLine ());
            } catch (Exception e) {
                Console.WriteLine (e.Message);
                b = false;
            } finally {
                Console.WriteLine (n);
            }
        } while(b == false);
    }
}

誰か説明してもらえますか?

トニー

Bのユーザーが正しい入力を入力しない場合、変数は、永遠に偽として捕獲されます。したがって、すべてのループの開始時に、ブール変数をデフォルト値である「true」として設定する必要があります。これは、すべての反復は、ユーザーが整数を入力するための新しい試行である必要があるためです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

コードブロックで値をラップすると、入力した数値がDoubleに変わるのはなぜですか?

分類Dev

catchブロックがコンパイラエラーを生成するのはなぜですか?

分類Dev

エラーが存在するのに、なぜ私のプログラムは2番目のcatchブロックを実行しないのですか?

分類Dev

「間違ったfsタイプ、不正なオプション、不正なスーパーブロック」エラーが発生するのはなぜですか?

分類Dev

「間違ったfsタイプ、不正なオプション、不正なスーパーブロック」エラーが発生するのはなぜですか?

分類Dev

try catchブロックが機能しなくなったのはなぜですか?(ダーツ、フラッター)

分類Dev

ブール値が真になるのはなぜですか?

分類Dev

Try / Catchブロックが新しい変数スコープを作成するのはなぜですか?

分類Dev

ラムダが値がtrueのブール値に変換するのはなぜですか?

分類Dev

ラムダが値がtrueのブール値に変換するのはなぜですか?

分類Dev

ブロックスコープ変数がブロック外に存在するのはなぜですか?

分類Dev

ブールインデックスによって次元の順序が変わるのはなぜですか?

分類Dev

ブール値が yes または no の代わりに no と表示され続けるのはなぜですか?

分類Dev

参照が異なっていても、オブジェクトの値が変わるのはなぜですか?

分類Dev

ifブロック内で変数が空であるのに、外部に値があるのはなぜですか?

分類Dev

メソッドは「if」ブロックでのみ返されるのに、なぜコンパイルエラーがないのですか?

分類Dev

日時ローカル形式の値がTではなくUTCに変わるのはなぜですか?

分類Dev

テーブルのセッションIDが0に変わるのはなぜですか?

分類Dev

バブルソートプログラムを実行するたびに出力が変わるのはなぜですか?

分類Dev

エラーをキャッチするために使用したときにtry-catchを使用すると、エラーとキャッチブロックが出力されるのはなぜですか?

分類Dev

onActivityResult()がワーカースレッドによってブロックされるのはなぜですか?

分類Dev

マップされたドライブがファイルエクスプローラーに表示されないのはなぜですか?

分類Dev

TypeScriptでブロックスコープの変数「name」を再宣言できないというエラーが発生したのはなぜですか?

分類Dev

「クライアントがサーバー構成によって拒否されました」というエラーでApacheがviewvc(エラー403)をブロックするのはなぜですか?

分類Dev

Try-Catchブロックが囲んでいるスコープの変数に影響を与えるのはなぜですか?

分類Dev

Try-Catchブロックが囲んでいるスコープの変数に影響を与えるのはなぜですか?

分類Dev

Flux.create内にブロックがあるこのreatorコードが機能しなかったのはなぜですか?

分類Dev

Erlangへのログイン:エラーが発生したときにメールを送信するライブラリがないのはなぜですか?

分類Dev

「真の」ブール値が「間違った属性値」であるのはなぜですか?

Related 関連記事

  1. 1

    コードブロックで値をラップすると、入力した数値がDoubleに変わるのはなぜですか?

  2. 2

    catchブロックがコンパイラエラーを生成するのはなぜですか?

  3. 3

    エラーが存在するのに、なぜ私のプログラムは2番目のcatchブロックを実行しないのですか?

  4. 4

    「間違ったfsタイプ、不正なオプション、不正なスーパーブロック」エラーが発生するのはなぜですか?

  5. 5

    「間違ったfsタイプ、不正なオプション、不正なスーパーブロック」エラーが発生するのはなぜですか?

  6. 6

    try catchブロックが機能しなくなったのはなぜですか?(ダーツ、フラッター)

  7. 7

    ブール値が真になるのはなぜですか?

  8. 8

    Try / Catchブロックが新しい変数スコープを作成するのはなぜですか?

  9. 9

    ラムダが値がtrueのブール値に変換するのはなぜですか?

  10. 10

    ラムダが値がtrueのブール値に変換するのはなぜですか?

  11. 11

    ブロックスコープ変数がブロック外に存在するのはなぜですか?

  12. 12

    ブールインデックスによって次元の順序が変わるのはなぜですか?

  13. 13

    ブール値が yes または no の代わりに no と表示され続けるのはなぜですか?

  14. 14

    参照が異なっていても、オブジェクトの値が変わるのはなぜですか?

  15. 15

    ifブロック内で変数が空であるのに、外部に値があるのはなぜですか?

  16. 16

    メソッドは「if」ブロックでのみ返されるのに、なぜコンパイルエラーがないのですか?

  17. 17

    日時ローカル形式の値がTではなくUTCに変わるのはなぜですか?

  18. 18

    テーブルのセッションIDが0に変わるのはなぜですか?

  19. 19

    バブルソートプログラムを実行するたびに出力が変わるのはなぜですか?

  20. 20

    エラーをキャッチするために使用したときにtry-catchを使用すると、エラーとキャッチブロックが出力されるのはなぜですか?

  21. 21

    onActivityResult()がワーカースレッドによってブロックされるのはなぜですか?

  22. 22

    マップされたドライブがファイルエクスプローラーに表示されないのはなぜですか?

  23. 23

    TypeScriptでブロックスコープの変数「name」を再宣言できないというエラーが発生したのはなぜですか?

  24. 24

    「クライアントがサーバー構成によって拒否されました」というエラーでApacheがviewvc(エラー403)をブロックするのはなぜですか?

  25. 25

    Try-Catchブロックが囲んでいるスコープの変数に影響を与えるのはなぜですか?

  26. 26

    Try-Catchブロックが囲んでいるスコープの変数に影響を与えるのはなぜですか?

  27. 27

    Flux.create内にブロックがあるこのreatorコードが機能しなかったのはなぜですか?

  28. 28

    Erlangへのログイン:エラーが発生したときにメールを送信するライブラリがないのはなぜですか?

  29. 29

    「真の」ブール値が「間違った属性値」であるのはなぜですか?

ホットタグ

アーカイブ