C#:我使用 switch 语句创建了一个 SpanishTranslate 方法,但它在我的 Console.WriteLine 中不起作用

C#: I created a SpanishTranslate method using a switch statement but it won't work in my Console.WriteLine

提问人:Deasjia Shannon 提问时间:11/4/2023 更新时间:11/4/2023 访问量:39

问:

因此,要点如下,除了已经给出的方法(DisplayNumbers、FindSum、ProductSum、CreateRandomNumber)之外,我们还被赋予了创建两个方法的任务。我的任务是创建一个 CompareInteger 方法,用于比较数字并说明哪个更大。另一个是翻译西班牙语,我将数字更改为西班牙语单词(例如:7 = Siete)并输入“西班牙语中的数字是{西班牙数字}和{西班牙数字}。 - 问题是,每当我尝试打印“西班牙语中的数字是 {method} 和 {method} 时,它仍然打印数字而不是单词,但是如果我在 console.writeline 之外调用该方法,它就会起作用

现在,建议使用 and if 语句完成第一个方法 (CompareIntegers),使用 switch 语句完成第二个方法 (TranslateSpanish)。

我尝试过以不同的方式编写它,我不想通过从 console.writeline 调用不同行上的方法来作弊。

using System.Net;

class M9Methods
{
    static Random randomNumber = new Random();
    private static void Main(string[] args)
    {
        int num1, num2;
        // Call method to create a random number and store in variable num1
        num1 = CreateRandomNumber();
        // Call method to create a random number and store in variable num2
        num2 = CreateRandomNumber();

    
        DisplayNumbers(num1, num2); // Call method to display the numbers
                                    // Call method to find the sum and display the result.
        Console.WriteLine($"The sum of {num1} and {num2} is {FindSum(num1, num2)}");
        // Call method to find the product and display result.
        Console.WriteLine($"The product of {num1} and {num2} is {FindProduct(num1, num2)}");
        // Call method that compares the numbers and tells which is largest or if they are equal.
        Console.WriteLine($"The largest number between {num1} and {num2} is {CompareInteger(num1, num2)}");
        Console.WriteLine($"The {num1} and {num2} in spanish are {TranslateSpanish1(num1)}");
    
    }
    // Method to create a random integer from 1 to 10 and return it
    public static int CreateRandomNumber()
    {
        int num = randomNumber.Next(10) + 1; // Create a random number from 1 to 10
        return num;
    }
    // Method to display 2 integers
    public static void DisplayNumbers(int n1, int n2)
    {
        Console.WriteLine($"The first number is {n1}");
        Console.WriteLine($"The second number is {n2}");
    }
    // Method to return the sum of 2 integers
    public static int FindSum(int n1, int n2)
    {
        return n1 + n2;
    }
    // Method to return the product of 2 integers
    public static int FindProduct(int n1, int n2)
    {
        return n1 * n2;
    }
    // Method to compare 2 integers and display which is largest or if they are equal
    public static int CompareInteger(int n1, int n2)
    {

        if (n1 > n2)
        {
            //Console.WriteLine($"The largest number is: {n1}");
            return n1;
        }
        else if (n1 == n2)
        {
            Console.WriteLine($"These are the same numbers, Theyre equal!");
            return n1;
        }
        else
        {
           // Console.WriteLine($"The largest number is: {n2} ");
            return n2;
        }
    }
    // Method to return/display the number in Spanish.
    public static int TranslateSpanish1(int n1)
    {
            switch (n1)
            {
                case 1:
                    Console.WriteLine("Uno");
                    break;
                case 2:
                    Console.WriteLine("Dos");
                    break;
                case 3:
                    Console.WriteLine("Tres");
                    break;
                case 4:
                    Console.WriteLine("Quatro");
                    break;
                case 5:
                    Console.WriteLine("Cinco");
                    break;
                case 6:
                    Console.WriteLine("Seis");
                    break;
                case 7:
                    Console.WriteLine("Siete");
                    break;
                case 8:
                    Console.WriteLine("Ocho");
                    break;
                case 9:
                    Console.WriteLine("Nueve");
                    break;
                case 10:
                    Console.WriteLine("Diez");
                    break;
                default:
                    Console.WriteLine("couldnt comprehend");
                    break;
            }

        
        return n1;

    }

}
C# 调试 方法 switch-statement

评论

1赞 jmcilhinney 11/4/2023
您需要调试代码。您需要在此处发布之前执行此操作。如果您不知道如何调试,请停止您正在做的事情并先学习它。设置断点并逐行单步执行代码,检查每个步骤的状态。一旦状态不符合您的期望,您就会发现问题,您可以专门关注该问题。如果您不知道如何修复它,您可以告诉我们代码在何处以及如何表现,而不是预期。
0赞 Retired Ninja 11/4/2023
您在此处使用函数的方式使它看起来像您期望它将返回一个可以打印的字符串。它没有,它只是直接写入控制台并返回传入的整数,所以也许可以返回字符串。您可以每隔一段时间考虑一行空格。这将使您的代码更易于阅读。Console.WriteLine($"The {num1} and {num2} in spanish are {TranslateSpanish1(num1)}");
1赞 jmcilhinney 11/4/2023
我们在这里看到的是在不知道它必须做什么的情况下编写代码的结果。这意味着不仅要知道最终结果,还要知道实现目标的步骤。如果您先花时间制定逻辑,然后编写代码来实现该逻辑,那么您最终不太可能得到该代码。
1赞 jmcilhinney 11/4/2023
出现错误的一个直接线索是,该翻译方法的目的是将数字转换为文本,但参数是 type,返回类型也是 type 。如何将文本作为类型返回?当你将你的逻辑与你的代码进行比较时,你应该能够发现这一点,这就是为什么你需要真正弄清楚这个逻辑。intintint
0赞 Fildor 11/4/2023
其实又一个教学不善的例子......如果指令微观的并且需要,那么最好先检查一些示例代码,这些代码演示了“if”和“switch”的用法。而且它仍然可以搞砸的事实表明缺乏先前的基础知识。

答: 暂无答案