我想用在C#用戶輸入來實現歐幾里德算法片斷作爲我學習這門語言的過程的一部分。 MVS告訴我,if和elif語句以及這些語句的尾括號存在錯誤。現在,從pythonic背景來看,這對我來說似乎很自然,所以請幫助我確定可能的錯誤。非常感謝幫助。錯誤在C#中使用if語句
代碼:
namespace EuclideanAlgorithm
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter two numbers to calculate their GCD");
int input1 = Convert.ToInt32(Console.ReadLine());
int input2 = Convert.ToInt32(Console.ReadLine());
int remainder;
int a;
int b;
if (input1 == input2);
{
Console.Write("The GCD of", input1, "and", input2, "is", input1);
Console.ReadLine();
}
else if (input1 > input2);
{
a = input1;
b = input2;
while (remainder != 0);
{
remainder = a % b;
a = b;
b = remainder;
}
Console.Write("The GCD of", input1, "and", input2, "is", b);
Console.ReadLine();
}
else if (input1 < input2);
{
a = input2;
b = input1;
while (remainder != 0);
{
remainder = a % b;
a = b;
b = remainder;
}
Console.WriteLine("The GCD of", input1, "and", input2, "is", b);
Console.ReadLine();
}
}
}
}
這真的很有幫助...謝謝!在旁註中,我想知道爲什麼while語句不會在餘數被賦值爲0但是循環結束後立即結束。提前致謝。 –
@SebastianGarrido因爲你需要在評估它之前計算它,所以我希望我有道理。基本上再計算一次*在* while - >'remaining = a%b;'之前,讓它進入一段時間。 –
有什麼辦法可以繞過這種行爲嗎? –