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

时间:2018-08-31 13:49:23

标签: java

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

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的方法,否则它将无法正常工作

3 个答案:

答案 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;
}