关于神秘的澄清

时间:2015-02-25 04:27:02

标签: java methods

我刚刚开始上网学习计算机科学课程,我对编程很熟悉(几周的经验)。我正在完成一项任务,但我不明白什么是神秘方法。我还没有找到一个答案,我可以在网上,我的教科书或我的教授。使用此代码作为示例的任何解释也将非常感谢!

这是我在其中看到的等式:

public static void mystery1(int n) {
    System.out.print(n + " ");
    if (n > 0) {
        n = n - 5;
    }
    if (n < 0) {
        n = n + 7;
    } else {
        n = n * 2;
    }
    System.out.println(n);
}

如果有人可以提供帮助,那就太棒了!谢谢!

3 个答案:

答案 0 :(得分:2)

您的任务可能是弄清楚这种方法的作用。更具体地说,它打印到屏幕上的是什么。我将引导您了解如何解决这个问题。

你有一个名为mystery1的函数,也叫做methood。函数只是一个命名的代码块,您可以在其他代码段中使用它。此函数采用名为n的整数参数。对于这个例子,假设n = 12。

调用函数时,第一件事就是通过System.out.print方法打印出n。请注意,它后面会打印一个空格。另请注意,最后它会打印另一个在方法中分配的n值。所以该方法将打印&#34; 12?&#34;没有双引号。问号是我们必须弄清楚的。该代码表示​​如果n> 0然后n = n-5。由于12大于0,n得到新值7.下一个if语句表示如果n小于0,则n被赋值为n + 7。但它不小于零,此时为7,所以我们转向else语句。在这个语句中,n乘以2,即14,所以最后一个语句打印14。

因此,对于输入值12,此方法将打印: 12 14

我希望这会有所帮助。如果没有,请详细说明您的作业以及您对我的解释不了解。

答案 1 :(得分:2)

首先,我投了你的问题,因为我认为对于刚开始从事计算机编程的人来说这是一个有效的问题,而且我认为有些人无法理解Stack Overflow的意义和目的,这是有帮助的程序员在需要时。

其次,我认为对您帖子发表评论的几位用户都在正确的轨道上。我个人从来没有听说过一种神秘的方法,所以我认为这里的目标是让你简单地弄清楚方法的作用。在这种情况下,该方法采用int'n'的参数。这意味着如果在应用程序中的任何一点调用'mystery1()'方法,则必须将整数作为变量传递。

假设用户输入数字“9”。该方法将由代码mystery1(9)调用。然后这将运行'if'语句的第一部分,因为n大于0.因此,n将等于n - 5或9 - 5,即4.(因此,n = 4。)< / p>

我希望我的回答对你有所帮助。小心。

答案 2 :(得分:1)

这种练习的目的在于给你一种方法,但是他们不会告诉你它的作用(因此,#6;神秘&#34;)。你应该弄清楚它自己做了什么(比如#34;解开谜团&#34;)。它并不意味着该方法在任何方面都是特殊的。

说我给你一个神秘的&#34;像这样的方法:

public static void mystery(int n) {
  System.out.println(n+1);
}

你会解决这个谜团&#34;通过告诉我这个方法打印出n之后的数字。这里没什么特别的。

在您提供的示例中,您的工作是告诉我为什么方法会在0 0时打印n = 0,或在6 2时打印n = 6


我认为使用术语&#34;神秘方法&#34;是相当误导的,因为它显然让你(和许多很多很多其他人)相信这些方法的某些内容是特殊的,你需要了解的东西。他们没有什么特别之处,也没什么可学的。

我想很多人会更好地理解这一点,如果教师只是说&#34;告诉我这个方法做了什么&#34;而不是尝试对待像5岁儿童这样的学生,而不是说#34;这是一种神秘的方法( ooh,fancy and entertaining )。你能扮演侦探并为我解开谜团吗?&#34;