2

私はちょうど c# を学んでおり、先に進む前にすべてを理解したいと思っています。

私が抱えている問題は、2つの Console.ReadLine(); が必要なことです。コンソールを一時停止します。1 だけを使用すると、プログラムは入力後に終了します。では、代わりに2つのreadlineメソッドが必要なのはなぜですか? 何か案は?

私のコードでは、readline メソッドの 1 つをコメントアウトしたことに注意してください。これは、プログラムを動作させたい方法ですが、そうではありません。ただし、コメントを削除するとプログラムは機能しますが、その理由がわかりません。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CoinFlip
{
    class Program
    {
        static void Main(string[] args)
        {

            Random rng = new Random();
            Console.WriteLine(@"

This program will allow you to guess heads or tails on a coin flip.

Please enter h for heads, or t for tails and press Enter: ");

            char userGuess = (char)Console.Read();
            int coin = rng.Next(0,2);

            Console.WriteLine("Coin is {0}\n\n", coin);


            if (coin == 0 && (userGuess == 'h' || userGuess == 'H'))
            {

                Console.WriteLine("It's heads! You win!");

            }
            else if (coin == 1 && (userGuess == 't' || userGuess == 'T'))
            {
                Console.WriteLine("It's tails! You win!");

            }
            else if (userGuess != 't' && userGuess != 'T' && userGuess != 'h' && userGuess != 'H') 
            { 
                Console.WriteLine("You didn't enter a valid letter"); 
            }

            else
            {

                if (coin == 0) { Console.WriteLine("You lose mofo. The coin was heads!"); }
                if (coin == 1) { Console.WriteLine("You lose mofo. The coin was tails!"); }

            }
            Console.ReadLine();
            //Console.ReadLine();
        }
    }
}
4

3 に答える 3

0

最初のConsole.ReadLine()Enterキーによって消費されるため、プログラムは終了します。Console.Read()
の代わりにこれを試してください

    var consoleKeyInfo = Console.ReadKey();
    var userGuess = consoleKeyInfo.KeyChar;
于 2014-10-31T15:11:54.887 に答える