Java 如何分解一个方法并处理它

Java 如何分解一个方法并处理它,java,arrays,Java,Arrays,我正在为下周的考试做准备,我决定在网上找一些考题以便更好地准备。 我遇到了这个问题,答案是c。但我真的很想知道如何或一步一步地回答这样的问题。我陷入困境的部分是试图从逻辑上理解aintm=神秘(n)一个数字怎么能等于一个方法?每当我遇到像这样的问题,他们有什么重要的事吗?我应该先回答吗 private int[] myStuff; /** Precondition : myStuff contains int values in no particular order. /*/ publ

我正在为下周的考试做准备,我决定在网上找一些考题以便更好地准备。 我遇到了这个问题,答案是c。但我真的很想知道如何或一步一步地回答这样的问题。我陷入困境的部分是试图从逻辑上理解a
intm=神秘(n)一个数字怎么能等于一个方法?每当我遇到像这样的问题,他们有什么重要的事吗?我应该先回答吗

private int[] myStuff;
 /** Precondition : myStuff contains int values in no particular order.
 /*/ 
 public int mystery(int num)
 {
 for (int k = myStuff.length - 1; k >= 0; k--)
 {
 if (myStuff[k] < num)
 {
 return k;
 }
 }
 return -1;
 }

Which of the following best describes the contents of myStuff after the 
following statement has been executed?
 int m = mystery(n); 

(a) All values in positions 0 through m are less than n.
(b) All values in positions m+1 through myStuff.length-1 are 
less than n.
(c) All values in positions m+1 through myStuff.length-1 are 
greater than or equal to n.
(d) The smallest value is at position m. 
(e) The largest value that is smaller than n is at position m.
private int[]myStuff;
/**前提条件:myStuff不按特定顺序包含int值。
/*/ 
公共整数神秘(整数)
{
对于(int k=myStuff.length-1;k>=0;k--)
{
if(myStuff[k]
您了解什么是方法吗? 这是非常基本的,方法
神秘
接收一个int作为参数,并在调用它时返回一个int。
也就是说,变量
m
在您使用
n
调用它后,将被分配从方法
神秘
返回的值,该值是某个值的整数。

您了解方法是什么吗? 这是非常基本的,方法
神秘
接收一个int作为参数,并在调用它时返回一个int。
也就是说,在使用
n
调用变量
m
后,变量
m
将被分配从方法
中返回的值,该值是某个值的int。

请参阅本页了解方法语法


int m=神秘(n)
表示此方法将返回int值
,您将
将该值赋给int变量m
。所以您的最终结果是
m
。循环将从数组的结束位置运行到0。当数组的当前位置值小于参数
n
时,循环将中断。在这一点上,它将返回循环的当前位置。s o现在m=当前回路位置。如果循环的所有值都大于n,它将返回-1,因为如果条件始终失败。

请参阅本页以了解方法语法

int m=神秘(n)
表示此方法将返回int值
,您将
将该值赋给int变量m
。所以您的最终结果是
m
。循环将从数组的结束位置运行到0。当数组的当前位置值小于参数
n
时,循环将中断。在这一点上,它将返回循环的当前位置。s o现在m=当前回路位置。如果循环的所有值都大于n,它将返回-1,因为If条件总是失败。

“我遇到的问题是试图从逻辑上理解int m=神秘(n);一个数字如何等于一个方法?”

方法可以返回值,也可以不返回值。不返回值的返回类型为void。一个方法可以返回一个基元值(比如在您的例子中int)或任何类的对象。返回类型的名称可以是Java中定义的八种基本类型中的任意一种、任何类的名称或接口

如果方法不返回值,则不能将该方法的结果赋给变量

如果一个方法返回一个值,调用方法可能会也可能不会费心将一个方法返回的值存储在一个变量中。

我遇到的问题是试图从逻辑上理解一个int m=神秘(n);一个数字怎么能等于一个方法

方法可以返回值,也可以不返回值。不返回值的返回类型为void。一个方法可以返回一个基元值(比如在您的例子中int)或任何类的对象。返回类型的名称可以是Java中定义的八种基本类型中的任意一种、任何类的名称或接口

如果方法不返回值,则不能将该方法的结果赋给变量


如果一个方法返回一个值,调用方法可能会也可能不会费心将一个方法返回的值存储在一个变量中。

将示例代码放入Java IDE中,如Eclipse、Netbeans或IntelliJ,然后在其中一个环境中的调试器中逐步执行代码

考虑到您即将开始,我将为您提供编译和运行此程序所需的其余代码

public class MysteriousAlright {
    private int[] myStuff;

    public int mystery(int num)
    {
        for (int k = myStuff.length - 1; k >= 0; k--) {
            if (myStuff[k] < num) {
                return k;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        MysteriousAlright ma = new MysteriousAlright();

        ma.setMyStuff(new int[] {4,5,6,7});

        int m  = ma.mystery(5);
        System.out.println("I called ma.mystery(5) and now m is set to " + m);

        m  = ma.mystery(3);
        System.out.println("I called ma.mystery(3) and now m is set to " + m);

        m  = ma.mystery(12);
        System.out.println("I called ma.mystery(12) and now m is set to " + m);
    }

    public void setMyStuff(int[] myStuff) {
        this.myStuff = myStuff;
    }
}
公共类{
私人住宅;
公共整数神秘(整数)
{
对于(int k=myStuff.length-1;k>=0;k--){
if(myStuff[k]
然后需要学习如何使用调试器和/或编写简单的单元测试

一次一行地逐步完成代码,并观察变量值的变化,这将有助于您了解本学习环境

这里有两种策略,您可以使用它们来分解无意义的代码,就像您在本“教育”中不幸遇到的那样