我是C#的新手,我試圖讓一個簡單的isPalindrome方法工作。基本上我的for循環從來沒有進入。我試着給它一個字符串「hannah」,它永遠不會在for循環的主體中打印一個Console.writeline方法調用。但是在for循環之前的兩個WriteLine調用對於「hannah」返回true,所以它應該進入for循環並至少從for循環體輸出一條語句。我的循環有什麼問題?爲什麼我的c#for循環無法進入?
private static Boolean isPalindrome(string s)
{
int counter = 0;
if (s.Length == 1)
{
return true;
}
Console.WriteLine(s[counter]==s[(s.Length - counter - 1)]); //this returns true
Console.WriteLine((counter != (s.Length/2))); //this returns true
for (; (counter != (s.Length/2)) & (s[counter] == (s.Length - counter - 1)); counter++)
{
Console.WriteLine("s[counter is {0} and s.length-counter-1 is", s[counter], s[(s.Length - counter - 1)]);
//The above line never prints; why doesn't my for loop get entered?
}
if((counter == (s.Length/2))) {
return true;
}
return false;
}