プログラムでユーザーのエントリをパスワード "prog"と照合して確認しようとしています。ユーザーは、正しいパスワードを取得する3つの試行があります。しかし、それはしばしば一致しませんが、 "正しいパスワード"の答えを与える。パスワード(文字)のユーザー入力をチェックするプログラムでは正しい結果が得られません。C#
if(p && r && o && g) valid = true;
:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication10
{
class Program
{
static void Main(string[] args)
{
int tries = 0;
bool valid = false;
bool p, r, o, g;
char userInput;
int characters;
while (tries < 3 && valid == false)
{
Console.WriteLine("Please enter password:");
p = r = o = g = false;
characters = 0;
while (characters < 4)
{
userInput = Console.ReadKey().KeyChar;
if (userInput == 'p' || userInput == 'P') p = true;
else if (userInput == 'r' || userInput == 'R') r = true;
else if (userInput == 'o' || userInput == 'O') o = true;
else if (userInput == 'g' || userInput == 'G') g = true;
characters++;
}
if (p == r == o == g == true)
{
valid = true;
}
tries++;
}
if (valid == true)
{
Console.WriteLine("\nright password");
}
else Console.WriteLine("\nwrong password");
Console.ReadLine();
}
}
}
"しかし、よく一致しませんが、「正しいパスワード」という答えが得られます。 - 例を挙げることはできますか?コードから判断すると、 "p"、 "r"、 "o"、 "g"の組み合わせは、存在する場合にのみ、それらが来る順番をチェックしないために通過するように見えます。 – Quantic
@ zom4あなたが単語progまたは文字だけを入力しようとしているのですか? –
これは私が今まで見た最悪のパスワード検証コードです。 –