Tôi mới bắt đầu với C# Tôi đã bắt đầu học nó để mở rộng các ngôn ngữ lập trình để xử lý nhưng tôi đã gặp phải một vấn đề nhỏ mà tôi không gặp phải trong cả C và Java.Hãy thử so sánh các ký tự trong C#
Tôi đang cố gắng nhận phản hồi của người dùng từ bàn phím và sau đó so sánh với trường hợp có thể xảy ra và nếu không có trường hợp nào khớp với nhau thì tôi muốn người dùng phải lặp lại quy trình cho đến khi anh ấy nhập đúng giá trị.
String input = Console.ReadLine();
while ((input[0] != 'N') || (input[0] != 'Y'))
{
input = Console.ReadLine();
}
if (input[0] == 'N')
{
Console.WriteLine("NO");
Console.ReadKey();
}
else if (input[0] == 'Y')
{
Console.WriteLine("YES");
Console.ReadKey();
}
Đây không phải là cách hiệu quả nhất mà tôi đã thử, tôi cũng đã thử làm một vòng lặp while và nhiều biến thể khác.
Vấn đề tôi gặp phải là khi vòng lặp while không được kích hoạt, mọi thứ hoạt động tốt, nhưng khi tôi thêm nó vào, nó luôn đi vào vòng lặp ngay cả khi đầu vào là N hoặc Y và không bao giờ rời khỏi vòng lặp mặc dù rõ ràng là nó sai.
Xin vui lòng nếu ai đó có thể cho tôi một số hiểu biết về lý do tại sao điều này xảy ra hoặc nếu ai đó có thể đề xuất một cách tốt hơn để làm điều này, nó sẽ được đánh giá cao. Cảm ơn bạn.
Karim
Thay thế || với && –
thử chuyển đổi và ngắt .. – sajanyamaha
Tôi nghĩ bạn nên làm một cái gì đó như: Trong khi (! (đầu vào [0] == 'Y' || đầu vào [0] == 'N')) –