练习 - 从方法返回布尔值

已完成

具有布尔值返回类型的方法可能很简单,但对于合并代码很有用。 可以调用返回 bool 值的方法来评估 if 语句、变量声明等任意位置的数据输入。 在本练习中,你将获得一些创建和使用布尔值返回类型方法的经验。

创建返回布尔值的方法

假设你是编码面试的候选人。 面试官要求你检查几个单词是否是回文词。 如果一个单词以正反顺序看相同,则它是回文词。 例如,单词 racecar 是一个回文。 让我们开始吧!

  1. 在 Visual Studio Code 编辑器中,删除前面练习中的任何现有代码。

  2. 在编辑器中输入以下代码:

    string[] words = {"racecar" ,"talented", "deified", "tent", "tenet"};
    
    Console.WriteLine("Is it a palindrome?");
    foreach (string word in words) 
    {
        Console.WriteLine($"{word}: {IsPalindrome(word)}");
    }
    

    此代码建立一些测试用例并引用名为 IsPalindrome 的方法。 单词和 IsPalindrome 方法的输出打印在 Console.WriteLine 语句中。

  3. 输入新的空白代码行,然后通过输入以下代码来创建 bool 方法:

    bool IsPalindrome(string word) 
    {
        return true;
    }
    
  4. 思考如何检查一个单词是否是回文词。

    一种检查方法是对比单词的第一个和最后一个字母。 如果相同,则对比单词的第二个和倒数第二个字母。 如果对比到单词的中间,则所有的字母都已对比且相同。 如果有任意字母不相同,则该单词不是回文词。

  5. 使用以下代码更新 IsPalindrome 方法:

    bool IsPalindrome(string word) 
    {
        int start = 0;
        int end = word.Length - 1;
    
        while (start < end) 
        {
            if (word[start] != word[end]) 
            {
                return false;
            }
            start++;
            end--;
        }
    
        return true;
    }
    

    请注意,变量 startend 指向字符串中的第一个和最后一个字符。 对比到单词的中间时,循环中断;startend 指向同一个字符,即相互重叠时。 每当字符相同时,指针都会向中心移动。 如果不同,则该方法终止并返回 false

    现在,你的方法成功检查了一个单词是否是回文词,并相应地返回了 truefalse

检查你的工作

在此任务中,从集成终端运行应用程序,并验证代码是否正常工作。 现在就开始吧。

  1. 使用 Ctrl + S 或使用 Visual Studio Code 文件菜单保存工作。

  2. 如有必要,打开 Visual Studio Code 的集成终端面板。

    在“资源管理器”面板中,若要在 TestProject 文件夹位置打开终端,请右键单击“TestProject”,然后选择“在集成终端中打开”。

  3. 在终端命令提示符处,输入 dotnet run

  4. 验证代码是否生成以下输出:

    Is it a palindrome?
    racecar: True
    talented: False
    deified: True
    tent: False
    tenet: True
    

    如果代码显示不同的结果,则需要查看代码以查找错误并进行更新。 再次运行代码以查看是否已解决问题。 继续更新和运行代码,直到代码生成预期结果。