あなたは正しい方向に指摘するには、あなたはここでwhile
ループを使用すると思います。ブール表現の場合、何かが真であると主張するよりも、ではなく、というケースが主張されているのと根本的に異なるわけではありません。たとえば、実際にはがと等しくないため、1 != 2
は完全に真です。それは少し奇妙に聞こえるが、なぜこの声明が本当であるのか考えてみると、これは問題をはっきりさせるだろうと思う。
ワンポイントクイックポイント。私はこれがコメントで言及されていることを知っていますが、この場合else if (a == 625)
は冗長です。a
はおそらく何もありませんしかし 625ここに。また、あなたがif
ステートメントを逆転したと仮定します。これは、文字どおり任意の数字をその他のと書いた方が正しいパスワードなので、正しいパスワードです(これがなぜそうであるかについては、if
ステートメントを詳しく見てください)。そうは言って
は、ここであなたを助けるかもしれない例です:
int a = // Read integer from console;
// This will happen if, and only if, a is something other than 625
// This'll keep prompting them until they enter 625
while (a != 625) {
printf("Incorrect password. Please enter the correct password.");
a = // Read integer from console
}
// If we got past the loop, we know that they must have entered a correct password
printf("Correct password");
・ホープ、このことができます。
スタートのように、この目的のためにループを使用する必要があります。あなたはここで* cループのユーザー入力*を検索しようとしましたか? –
'if(a == 625)'は重複しています。なぜなら、その節になると625に等しくなければならないからです。それは "else"の意味です。その代わりに大括弧を使用しないでください。関数ではありません。 –
こんにちは。申し訳ありませんが、この質問はあまりにも些細なものとして閉じられる可能性があります。あなたは[whileループ](https://www.tutorialspoint.com/cprogramming/c_while_loop.htm)と[Cの難しい方法を学ぶ]のようなCの学習に関する良い本を調べるべきです(https://learncodethehardway.org/c /)。正直なところ、プログラムの仕方を覚えていれば、Cは良い選択ではないかもしれません。それは非常に複雑で、[Ruby](http://tryruby.org/levels/1/challenges/0)のような高水準の言語で基礎を学ぶ方がよいでしょう。 – Schwern