【问题标题】:How can I fix a missing return statement in Bubblesort?如何修复 Bubblesort 中缺少的 return 语句?
【发布时间】:2014-05-22 13:14:20
【问题描述】:

我对 Java 完全陌生,对此一无所知。我已经“教”了几个月了,但我仍然无法理解它。

这是我给出错误的代码:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;

public class Bubblesort {

  private int x,y,n;
  private int arr[];

  public Component createComponents() {
    int temp; 
    for (int x = 0; x < n - 1; x++) { 
      for (int y = x + 1; y < n; y++) { 
        if (arr[x] > arr[y]) { 
          temp = arr[y]; 
          arr[y] = arr[x]; 
          arr[x] = temp; 
        } 
      } 
    } 
  } 
}

我尝试了一些随机返回语句,但就像我说的那样.. 我真的不知道自己在做什么,那么 做什么 我必须做什么?

【问题讨论】:

  • 老实说,如果您已经学习了几个个月的课程,但对这些基础知识仍有疑问,请考虑更改课程。

标签: java sorting bubble-sort


【解决方案1】:

不清楚问题是什么,但这里有一个good java bubble sort example 你可以关注。

【讨论】:

    【解决方案2】:

    如果你真的想返回一些东西,你应该返回一个 int 数组而不是一个 Component,像这样:

    public int[] createComponents() {
        int temp; 
        for (int x = 0; x < n - 1; x++) { 
          for (int y = x + 1; y < n; y++) { 
            if (arr[x] > arr[y]) { 
              temp = arr[y]; 
              arr[y] = arr[x]; 
              arr[x] = temp; 
            } 
          } 
        }
        return arr;
      }
    

    【讨论】:

    • 如果你想返回数组,你应该对它有一个引用。公共 int[] createComponents(int[] arr){...}
    【解决方案3】:

    您需要有一个 Main 才能让事情顺利进行。

    请参阅 http://docs.oracle.com/javase/tutorial/getStarted/application/index.html 了解经典的“Hello World”。

    在其中,您还将看到如何写入控制台 (System.out.println)。 Main 也是您可以将数字放入数组的地方。

    【讨论】:

      【解决方案4】:

      由于您的函数在末尾是 Component 类型,因此您需要返回一个组件

      Component x = foo;
      

      然后在函数的底部

      return foo;
      

      虽然在这种情况下,我建议您使用 int[]void 类型,这样您就不必有返回语句。就我个人而言,我推荐后者,因为我通常这样做,并且它会更好地与您的代码对齐,因为您的数组是公开的,因此不需要返回任何内容。

      【讨论】:

        【解决方案5】:

        你的代码有几个问题:

        1. createComponents() 应该返回一个 int[] 而不是一个组件。
        2. arr 从未初始化。在你的类中创建一个构造函数 用值初始化数组。
        3. 在你的类中创建一个 main() 方法,这样你就可以实例化一个 Bubblesort 对象并调用 createComponents()

        【讨论】:

        • createComponents() 应该返回 Component[]
        • 我什至不确定为什么要讨论组件。 OP没有说清楚。但这似乎是一个排序程序,并且该方法正在操作一个名为 arr 的 int[]。所以我假设它应该返回一个int []。该方法对 Component 对象没有任何作用。
        【解决方案6】:

        我建议在用任何语言实现算法之前,你应该先写一个伪代码,然后继续实现。像这样的冒泡排序算法的实现肯定不是学习和实现 Java 技术的最好方法。我会建议先阅读一些 Java 教程,亲身体验“Hello World”并了解基础知识。祝你好运!!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-05-21
          • 2019-10-07
          • 1970-01-01
          • 1970-01-01
          • 2021-03-22
          • 1970-01-01
          • 2015-05-18
          相关资源
          最近更新 更多