错误:此处不允许变量声明



我收到此错误,我不知道该怎么办,请有人告诉我一个好的答案。

import java.util.*;
public class test{
public static int expand(int[] a,int n){
if (n==1)
return a;
if (n<=0)
return new int[0];
if(n<1)
int []c=new int[a.length*n];
for(int i=0;i<a.length;i++){
int num=a[i]/n;
for(int j=0;j<n;j++){
c[i*n+j]=num;
}
}
return  c;
}
public static void main (String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("please enter the n number:");
int x=sc.nextInt();
System.out.println("please enter the size of array:");
int arr=sc.nextInt();
int []b=new int [arr];
for(int o=0;o<b.legnth;o++){
System.out.println("please enter the"+o+"number:");
b[o]=sc.nextInt();
}
System.out.println("Java tester"+b);
System.out.println("expanded form is"+expand(b,x));
}
}

我收到此错误:

此处不允许变量声明

为什么呢? 我认为我无法删除将其标识为integer否则它将无法正常工作

原因是您尝试在if else范围内声明对象,但没有使用大括号{ }

将代码更改为:

if (n < 1) {
int[] c = new int[a.length * n];
}

或者在函数顶部声明int []c = new int [a.length]并在不声明的情况下进行 assing

c = new int[a.length*n];
public static int[] expand(int[] a,int n){
int [] c = null;
if (n==1)
return a;
if (n<=0)
return new int[0];
if(n<1){
c = new int[a.length*n];
for(int i=0;i<a.length;i++){
int num=a[i]/n;
for(int j=0;j<n;j++){
c[i*n+j]=num;
}
}
}
return  c;
}

我认为您想要实现的目标:

public static int[] expand(int[] a,int n) {
if (n==1)
return a;
if (n<=0)
return new int[0];
int []c =new int[0];
if(n<1) {
c = new int[a.length * n];
for (int i = 0; i < a.length; i++) {
int num = a[i] / n;
for (int j = 0; j < n; j++) {
c[i * n + j] = num;
}
}
}
return c;
}

代码中的错误与不正确的返回类型(int 而不是 int[](、c 超出 for 循环的范围有关。

最新更新