【问题标题】:Printing Values in an Array in Reverse反向打印数组中的值
【发布时间】:2014-02-10 20:42:09
【问题描述】:

我的代码设计为先按顺序打印值,然后再按相反的顺序打印。但是,我还必须在编写方法时至少使用以下方法标头:

public static int printOriginalArray(int[] list)
public static int printInReverse(int[] list)

我让代码运行了!我现在明白了!!它只是点击!是的!!! :-) 现在我的方法虽然正确但并不完全准确?我应该有 2 个方法而不是 1 个,并且我需要重写它,以便它反转数字,而不是交换。

public class Assignment01a {
    public static void main (String[] args) {

         int[] numbers = {4, 5, 6, 7};
         System.out.println("The list in order is: ");

         for (int num: numbers)
         System.out.println(num + " ");

         swap(numbers, 0, 3);

         for (int num: numbers)
         System.out.println(num + " ");
    }

    public static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr [i] = arr [j];
        arr [j] = temp;
    }
}

【问题讨论】:

  • 你没有在你的 main 方法中做任何事情,所以当然什么都不会发生。
  • 你没有调用main中的方法。
  • 这就是我很困惑的地方。如何实现 main 方法并在其中包含其他方法?
  • 您的main() 为空。所以你的程序什么都不做。
  • 请阅读基本的java教程。

标签: java arrays methods logic


【解决方案1】:

首先,所有方法都需要在某个类中声明。在这里,您的 swap 方法在 Assignment01a 类中声明。此外,还有一些静态方法,它们是通过在 public 关键字后面加上 static 关键字来声明的(就像您的 swap 方法一样)。可以直接从main()(从“静态上下文”)调用静态方法。然而,非静态方法需要在对象实例上/从对象实例中调用。这些是没有static 关键字的方法,可以认为它们属于特定对象。

【讨论】:

    【解决方案2】:

    好的,现在我按照您希望的方式更正了它。由于声明了您的方法以便它们返回 int 值,因此我认为它用于错误检查。如果方法返回除 0 以外的任何内容,程序会让您知道出了点问题。它看起来像这样:

    public class Assignment01a {
    
        public static void main (String[] args) {
    
             int[] numbers = {4, 5, 6, 7};
    
             if (printOriginalArray(numbers) != 0)
                 System.out.println("ERROR!");
    
             if (printInReverse(numbers) != 0)
                 System.out.println("ERROR!");
    
             System.out.println("\nProgram completed successfully!");
    
        }
    
        public static int printOriginalArray(int[] list) {
    
            System.out.println("The list in order is: ");
    
             for (int num: list)
             System.out.print(num + " ");
    
             return 0;
    
        }
    
        public static int printInReverse(int[] list) {
    
            System.out.println("\nThe list in reverse order is:");
    
            for (int i = list.length-1; i >= 0; i--) {
                System.out.print(list[i] + " ");
            }
    
            return 0;
    
        }
    
    }
    

    我希望能澄清您的问题,如果您有任何其他问题,请随时提出。

    【讨论】:

    • 是的,这绝对有很大帮助!现在是否很难将原始数组实现为单独的方法,以便程序对原始数组有 1 种方法,而反向使用 1 种方法?非常感谢你!
    • 不,不会的,我会按照我得到的方式编辑我的评论,如果我有任何错误,请纠正我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 2013-07-08
    相关资源
    最近更新 更多