不保持循环的while循环

rsg*_*mon 3 c# while-loop

对于初学者练习,我试图创建一个简单的循环,它接受来自用户的单个字符,将该字符打印到控制台并继续这样做,直到用户输入“R”。

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

namespace SimpleLoop
{
    class Program
    {
        static void Main(string[] args)
        {
            char cplayerSelection = 'R';

            while(cplayerSelection == 'R')
            {
                Console.WriteLine("Enter R, P, or S:");
            cplayerSelection = (char)Console.Read();
            Console.WriteLine(cplayerSelection);
            }
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

无论用户输入什么,它只会循环一次结束然后退出。我需要更改什么才能继续循环?

lil*_*dev 5

我相信应该是

while(cplayerSelection != 'R' || cplayerSelection != 'r')
Run Code Online (Sandbox Code Playgroud)

您必须检查大写和小写字母,因为它们没有相同的值。

编辑:还将 cplayerSelection 声明更改为其他一些字母,以便第一次实际执行循环。

也替换这一行

cplayerSelection = (char)Console.Read();
Run Code Online (Sandbox Code Playgroud)

cplayerSelection = Console.ReadKey().KeyChar;
Run Code Online (Sandbox Code Playgroud)

阅读 Habib 对此答案的评论以了解原因。