Java无法解析为变量

背景 今天准备写一个客户管理系统的项目,对于Java的初学者来说,很多细节无法理解。今天我遇到的问题百思不得其解。
当我把 Customer[] cust = new Customer[total]; 放到for语句中的时候显示 cust 无法解析为变量,而移出后就没问题了,下面是具体代码。//这个方法目前还没有写完,我知道把这条语句放进for里的逻辑是错的,应该放到外面,但是我想知道这里面的语法问题

public Customer[] getAllCustomers() {
        for(int i = 0; i < total-1; i++)
            Customer[] cust = new Customer[total];
}

结果显示cust无法解析为变量

请问大家这究竟是为什么呀,//挠头,挠头

首先,不要有把作用域标识符省略的习惯.
对于循环体和if后面的内容,如果只有一句话,是可以省略的.但是这个所谓的一句话是有限制的,等你完全熟练java的时候再去省略也不迟,现在不要偷懒,把该加的括号加上去.
第二,你这个如果把花括号加上,就不会提示什么变量怎么怎么.之所以这么提示,其实是因为他没有找到最合适的错误提示,而提示了一个更接近的.他其实正确的提示应该是此处不允许声明(Declaration not allowed here),也就是当省略循环体花括号时,循环体内容不允许声明变量.

变量定义在循环外边,不要在循环里边定义变量,循环里边可以赋值 ,不能定义变量,你如果定义了,循环多次那不就是有多个同名的变量了么,程序怎么知道该用哪一个呢,而且你定义数组应该是定义一次就行了,不用重复定义吧

public Customer[] getAllCustomers() {
   Customer[] cust ;
        for(int i = 0; i < total-1; i++)
           cust = new Customer[total];
}