澄清谜团
Clarification on Mystery
我刚开始在线学习计算机科学 class,我对编程还很陌生(几周的经验)。我正在做作业,但我不明白神秘方法是什么。我还没有在网上、教科书或教授那里找到可以解决问题的答案。任何使用此代码作为示例的解释也将不胜感激!
这是我在以下地方看到的方程式:
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);
}
如果有人能提供帮助,那就太好了!谢谢!
您的作业可能是弄清楚此方法的作用。更具体地说,它在屏幕上打印了什么。我将向您介绍如何解决这个问题。
您有一个函数,也称为方法,称为 mystery1。函数只是一个命名的代码块,您可以在其他代码段中使用它。此函数采用一个称为 n 的整数参数。对于这个例子,我们假设 n=12。
调用函数时发生的第一件事是通过 System.out.print 方法打印出 n。请注意,它在它之后打印了一个空白 space 。另请注意,最后它会打印在方法中分配的另一个 n 值。所以该方法将打印“12?”没有双引号。问号是我们必须弄清楚的。代码表示如果 n > 0 则 n = n-5。由于 12 大于 0,n 获得新值 7。下一个 if 语句表示如果 n 小于 0,则 n 被赋值为 n+7。但是不小于0,此时是7,所以我们转到else语句。在此语句中,n 乘以 2,即 14。所以最后一条语句打印 14.
因此,对于输入值 12,此方法打印:
12 14
希望对您有所帮助。如果不是,请详细说明你的作业以及你对我的解释有什么不理解的地方。
这种练习的重点是给你一个方法,但他们不会告诉你它的作用(因此 "mystery")。你应该自己弄清楚它的作用(比如 "solving the mystery")。这并不意味着该方法有任何特殊之处。
假设我给你一个这样的"mystery"方法:
public static void mystery(int n) {
System.out.println(n+1);
}
你会 "solve the mystery" 告诉我这个方法打印出 n
之后的数字。这里没什么特别的。
在您给出的示例中,您的工作是告诉我为什么该方法在 n = 0
时打印出 0 0
,或者在 n = 6
时打印出 6 2
。
我认为 "mystery method" 这个词的用法相当具有误导性,因为它显然让你(还有很多,很多,很多 others) 认为这些方法有些特别,是您需要学习的东西。他们没有什么特别之处,也没有什么可学的。
我认为如果教师只是说 "tell me what this method does" 而不是试图通过说 "Here's a mystery method (ooh, fancy and entertaining). Can you play detective and solve the mystery for me?"
来像对待 5 岁的孩子那样对待学生,很多人会更好地理解这一点
首先,我对你的问题投了赞成票,因为我认为这对于刚开始计算机编程的人来说是一个有效的问题,而且我认为有些人无法理解 Stack Overflow 的意义和目的,这是在需要的时候帮助程序员。
其次,我认为对您的 post 发表评论的几位用户是在正确的轨道上。我个人从未听说过神秘方法,所以我认为这里的目标是让您简单地弄清楚该方法的作用。在这种情况下,该方法采用 int 'n' 的参数。这意味着如果在应用程序的任何时候调用 'mystery1()' 方法,则必须传递一个整数作为变量。
假设用户输入数字“9”。该方法将由代码 mystery1(9)
调用。这将 运行 'if' 语句的第一部分,因为 n 大于 0。因此,n 将等于 n - 5,或 9 - 5,即 4。(因此, n=4.)
希望我的回答对您有所帮助。保重。
我刚开始在线学习计算机科学 class,我对编程还很陌生(几周的经验)。我正在做作业,但我不明白神秘方法是什么。我还没有在网上、教科书或教授那里找到可以解决问题的答案。任何使用此代码作为示例的解释也将不胜感激!
这是我在以下地方看到的方程式:
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);
}
如果有人能提供帮助,那就太好了!谢谢!
您的作业可能是弄清楚此方法的作用。更具体地说,它在屏幕上打印了什么。我将向您介绍如何解决这个问题。
您有一个函数,也称为方法,称为 mystery1。函数只是一个命名的代码块,您可以在其他代码段中使用它。此函数采用一个称为 n 的整数参数。对于这个例子,我们假设 n=12。
调用函数时发生的第一件事是通过 System.out.print 方法打印出 n。请注意,它在它之后打印了一个空白 space 。另请注意,最后它会打印在方法中分配的另一个 n 值。所以该方法将打印“12?”没有双引号。问号是我们必须弄清楚的。代码表示如果 n > 0 则 n = n-5。由于 12 大于 0,n 获得新值 7。下一个 if 语句表示如果 n 小于 0,则 n 被赋值为 n+7。但是不小于0,此时是7,所以我们转到else语句。在此语句中,n 乘以 2,即 14。所以最后一条语句打印 14.
因此,对于输入值 12,此方法打印: 12 14
希望对您有所帮助。如果不是,请详细说明你的作业以及你对我的解释有什么不理解的地方。
这种练习的重点是给你一个方法,但他们不会告诉你它的作用(因此 "mystery")。你应该自己弄清楚它的作用(比如 "solving the mystery")。这并不意味着该方法有任何特殊之处。
假设我给你一个这样的"mystery"方法:
public static void mystery(int n) {
System.out.println(n+1);
}
你会 "solve the mystery" 告诉我这个方法打印出 n
之后的数字。这里没什么特别的。
在您给出的示例中,您的工作是告诉我为什么该方法在 n = 0
时打印出 0 0
,或者在 n = 6
时打印出 6 2
。
我认为 "mystery method" 这个词的用法相当具有误导性,因为它显然让你(还有很多,很多,很多 others) 认为这些方法有些特别,是您需要学习的东西。他们没有什么特别之处,也没有什么可学的。
我认为如果教师只是说 "tell me what this method does" 而不是试图通过说 "Here's a mystery method (ooh, fancy and entertaining). Can you play detective and solve the mystery for me?"
来像对待 5 岁的孩子那样对待学生,很多人会更好地理解这一点首先,我对你的问题投了赞成票,因为我认为这对于刚开始计算机编程的人来说是一个有效的问题,而且我认为有些人无法理解 Stack Overflow 的意义和目的,这是在需要的时候帮助程序员。
其次,我认为对您的 post 发表评论的几位用户是在正确的轨道上。我个人从未听说过神秘方法,所以我认为这里的目标是让您简单地弄清楚该方法的作用。在这种情况下,该方法采用 int 'n' 的参数。这意味着如果在应用程序的任何时候调用 'mystery1()' 方法,则必须传递一个整数作为变量。
假设用户输入数字“9”。该方法将由代码 mystery1(9)
调用。这将 运行 'if' 语句的第一部分,因为 n 大于 0。因此,n 将等于 n - 5,或 9 - 5,即 4。(因此, n=4.)
希望我的回答对您有所帮助。保重。