1
char typeClient = ' ';
bool clientValide = false;
while (!clientValide)
{
     Console.WriteLine("\nEntrez le type d'employé (c ou g) : ");
     clientValide = char.TryParse(Console.ReadLine(), out typeClient);
     if (clientValide)
         typeClient = 'c';
}

char が 'g' または 'c' でない限り、while を終了しないようにしたいと思います。:)

4

4 に答える 4

5
string input;
do {
    Console.WriteLine("Entrez le type d'employé (c ou g):");
    input = Console.ReadLine();
} while (input != "c" && input != "g");

char typeClient = input[0];
于 2013-03-17T20:17:57.777 に答える
5

を使用Console.ReadLineしている場合、ユーザーはまたはを押しEnterた後にを押す必要があります。代わりに使用して、応答が瞬時になるようにします。cgReadKey

bool valid = false;
while (!valid)
{
    Console.WriteLine("\nEntrez le type d'employé (c ou g) : ");
    var key = Console.ReadKey();
    switch (char.ToLower(key.KeyChar))
    {
        case 'c':
            // your processing
            valid = true;
            break;
        case 'g':
            // your processing
            valid = true;
            break;
        default:
            Console.WriteLine("Invalid. Please try again.");
            break;
    }
}
于 2013-03-17T20:24:32.970 に答える
0

あなたは本当に近いです、私はこのようなものがあなたのためにうまくいくと思います:

char typeClient = ' ';
while (typeClient != 'c' && typeClient != 'g')
{
    Console.WriteLine("\nEntrez le type d'employé (c ou g) : ");
    var line = Console.ReadLine();
    if (!string.IsNullOrEmpty(line)) { typeClient = line[0]; }
    else { typeClient = ' '; }
}

基本的に、ユーザーが何かを入力すると入力が変数に読み込まれるため、入力するtypeClientまでループが続行されますgor c

于 2013-03-17T20:16:46.687 に答える