whileループを使用して、ユーザーが「はい」または「いいえ」以外の文字を入力すると、何か新しいものを入力するように指示しますが、トップから戻るのではなく、 "それはオプションではありません"というスパムだけです。誰かがなぜ私に説明することができますか?前もって感謝します。それはあなたがちょうどそれのためにそれらを促したことがない「それはオプションではありません」プリントアウトした後Cant get Whileループが動作する
using System;
class CalculatorProgram
{
//varibale for do-while loop
private static string endAnswer;
public static void Main() // <----- The Entry point
{
//Variables
string Choice1;
string mathChoice;
decimal Num1;
decimal Num2;
decimal Answer;
bool userWrong = true;
Console.Write("Would you like to use Lane's Custom Calculator?(Yes/No): ");
Choice1 = Console.ReadLine();
while(userWrong)
{
if (Choice1 == "Yes")
{
do
{
Console.Write("Would you like to Add, Subtract, Multiply, or Divide? (Case Sensitive): ");
mathChoice = Console.ReadLine();
//User inputs the 2 numbers
//Math Choices
if (mathChoice == "Add")
{
Console.WriteLine("What 2 numbers would you like to use?");
Console.Write("Number 1 is: ");
Num1 = decimal.Parse(Console.ReadLine());
Console.Write("Number 2 is: ");
Num2 = decimal.Parse(Console.ReadLine());
Answer = Num1 + Num2;
Console.WriteLine("Your expression is: " + Num1 + " + " + Num2 + " = " + Answer);
}
else if (mathChoice == "Subtract")
{
Console.WriteLine("What 2 numbers would you like to use?");
Console.Write("Number 1 is: ");
Num1 = decimal.Parse(Console.ReadLine());
Console.Write("Number 2 is: ");
Num2 = decimal.Parse(Console.ReadLine());
Answer = Num1 - Num2;
Console.WriteLine("Your expression is: " + Num1 + " - " + Num2 + " = " + Answer);
}
else if (mathChoice == "Multiply")
{
Console.WriteLine("What 2 numbers would you like to use?");
Console.Write("Number 1 is: ");
Num1 = decimal.Parse(Console.ReadLine());
Console.Write("Number 2 is: ");
Num2 = decimal.Parse(Console.ReadLine());
Answer = Num1 * Num2;
Console.WriteLine("Your expression is: " + Num1 + " X " + Num2 + " = " + Answer);
}
else if (mathChoice == "Divide")
{
Console.WriteLine("What 2 numbers would you like to use?");
Console.Write("Number 1 is: ");
Num1 = decimal.Parse(Console.ReadLine());
Console.Write("Number 2 is: ");
Num2 = decimal.Parse(Console.ReadLine());
Answer = Num1/Num2;
Console.WriteLine("Your expression is: " + Num1 + "/" + Num2 + " = " + Answer);
}
else
{
Console.WriteLine("This is not an option! Shutting Down..");
Console.ReadKey();
Environment.Exit(0);
}
//varibale for while loop to continue if selected Yes.
Console.Write("Another Equation?: ");
endAnswer = Console.ReadLine();
} while (endAnswer == "Yes");
//Goodbye Message
Console.WriteLine("Thank you for using my program, goodbye ");
Console.ReadKey();
Environment.Exit(0);
userWrong = false;
}
//If someone selects no for wanting to use my program.
else if (Choice1 == "No")
{
Console.WriteLine("Thank you for using my program, goodbye ");
Console.ReadKey();
Environment.Exit(0);
}
else
{
Console.WriteLine("That is not an option");
Console.ReadLine();
}
}
}
}
あなたが二度目に、ユーザーの選択肢を読んだことがない、あなたはwhileループの外でそれを行うと、ループ内であなただけの、これはオプションではありません」印刷"と繰り返します。 elseブロックのコードをwhileループの外側にある同じ行で更新するだけです。 - Choice1 = Console.ReadLine(); ' – pstrjds
BTW、ようこそ。あなたがプログラムすることを学んでいることは素晴らしいことです。私は、この質問をタイポグラフィの誤りの結果であると票決したにもかかわらず、質問をすることについてあなたが落胆することを望んでいませんでした。あなたがプログラムを学ぶにつれて、より多くの質問があります。そして、これはそれらの質問に答えるためのすばらしいフォーラムです。別の関連しない別のメモとして、比較するときに[string.Equals](https://msdn.microsoft.com/en-us/library/858x0yyx(v = vs.110).aspx)メソッドを使用して調べることができます'文字列'比較するときに序数、大文字と小文字を区別する、文化などを指定することができます。 – pstrjds
ありがとう! – Laneciar