Sono nuovo di C# Ho iniziato a impararlo per ampliare i linguaggi di programmazione a mia disposizione, ma ho incontrato un piccolo problema che non ho incontrato né in C né in Java.Cercando di confrontare i caratteri in C#
Sto cercando di ottenere una risposta utente dalla tastiera e quindi confrontandola con casi probabili e se nessuno di questi casi corrisponde, voglio che l'utente debba ripetere il processo finché non ha inserito un valore corretto.
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();
}
Questo è di gran lunga non è il modo più efficace che ho provato, ho anche provato a fare un ciclo Do While e molte altre varianti. Il problema che ho riscontrato è che quando il ciclo while non è attivato tutto funziona bene, ma quando lo aggiungo entra sempre nel ciclo anche se l'input è N o Y e non può mai lasciare il ciclo anche se è chiaro che è sbagliato.
Per favore, se qualcuno può darmi qualche idea sul perché questo si sta verificando o se qualcuno può proporre un modo migliore di farlo sarebbe molto apprezzato. Grazie.
Karim
Sostituisci || con && –
prova e interrompi .. – sajanyamaha
Penso che dovresti fare qualcosa del tipo: While (! (input [0] == 'Y' || input [0] == 'N')) –