gpt4 book ai didi

java - 在方法外定义变量并获取它们的返回值

转载 作者:行者123 更新时间:2023-11-30 08:45:13 25 4
gpt4 key购买 nike

正如标题所言。我必须编写一个代码来运行所有三种排序方法(冒泡、插入、选择)。到目前为止,我已经准备好气泡部分,但我不知道如何让它工作,因为在声明方法时必须定义一个变量,以便获得返回值。但我需要它返回方法外定义的变量。有什么办法可以做到吗?请记住,我还需要在另外两种方法中再次使用相同的值。

import java.util.Scanner;

public class Sorting {

static int d = 0;
static int c = 0;
static int n = 0;
static int swap = 0;
static int array[] = new int[n];

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.print("Number of elements: ");
n = scan.nextInt();



System.out.print("Enter " + n + " elements: ");

for (c = 0; c < n; c++)
array[c] = scan.nextInt();
}

static void BubbleSort(int[] a) { //this line!!

for (c = 0; c < ( n - 1 ); c++) {
for (d = 0; d < n - c - 1; d++) {
if (array[d] > array[d+1])
{
swap = array[d];
array[d] = array[d+1];
array[d+1] = swap;
}
}
}

System.out.print("Bubble sort: ");

for (c = 0; c < n; c++)
System.out.print(array[c] + " ");
}
}

最佳答案

很难理解你的问题:

  • BubbleSort 方法接受一个 int[] a 参数但从不使用它
  • main 方法将数字读入数组,但从不调用 BubbleSort
  • 你问的是 BubbleSort 的返回值,但该方法被声明为 void,并且它修改了 array 的内容,一个 static 变量:似乎这个方法并不打算返回任何东西,而是就地对数组进行排序
  • 许多未使用的变量
  • 许多变量在类中声明为静态,而它们可能是方法中的局部变量,其中一些在 for 循环中是局部的

解决了上述问题后,你的实现会像这样更有意义:

import java.util.Scanner;

public class Sorting {

public static void main(String[] args) {

int n, c;
Scanner scan = new Scanner(System.in);

System.out.print("Number of elements: ");
n = scan.nextInt();
int[] array = new int[n];

System.out.print("Enter " + n + " elements: ");

for (c = 0; c < n; c++) {
array[c] = scan.nextInt();
}

BubbleSort(array);
}

static void BubbleSort(int[] array) {

int n = array.length;

for (int c = 0; c < (n - 1); c++) {
for (int d = 0; d < n - c - 1; d++) {
if (array[d] > array[d + 1]) {
int swap = array[d];
array[d] = array[d + 1];
array[d + 1] = swap;
}
}
}

System.out.print("Bubble sort: ");

for (int c = 0; c < n; c++) {
System.out.print(array[c] + " ");
}
}
}

关于java - 在方法外定义变量并获取它们的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33400759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com