我收到此错误,但我不知道该怎么办,请有人告诉我一个好的答案。
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
的方法,否则它将无法正常工作
答案 0 :(得分:0)
原因是您试图在if else
范围内声明一个对象,但没有使用花括号{ }
将代码更改为:
if (n < 1) {
int[] c = new int[a.length * n];
}
或在函数顶部声明int []c = new int [a.length]
并进行声明而不声明
c = new int[a.length*n];
答案 1 :(得分:0)
我认为您想要实现以下目标:
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循环中超出范围。
答案 2 :(得分:0)
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;
}