Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java While循环语法错误?_Java_Syntax_While Loop_Syntax Error_Nested Loops - Fatal编程技术网

Java While循环语法错误?

Java While循环语法错误?,java,syntax,while-loop,syntax-error,nested-loops,Java,Syntax,While Loop,Syntax Error,Nested Loops,我正在尝试一个生成形状的Java项目,但我一直在while循环中遇到一个语法错误,我想不出来-有什么建议吗 以下是我迄今为止的代码: public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); System.out.println("Hello! I am a program that draws sh

我正在尝试一个生成形状的Java项目,但我一直在while循环中遇到一个语法错误,我想不出来-有什么建议吗

以下是我迄今为止的代码:

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner scan = new Scanner(System.in);

    System.out.println("Hello! I am a program that draws shapes, but YOU must tell me how big you wish me to make them!");
    System.out.println("Enter shape size: ");
    final int MAX_ROWS = scan.nextInt();

    // DIAMOND
    int spaces = 0, stars, row;

    for (row = 1; row <= (MAX_ROWS + 1) / 2; row++) {
        for (spaces = 0; spaces < MAX_ROWS - row; spaces++) {
            System.out.print(" ");
        }
        for (stars = 0; stars < row; stars++) {
            System.out.print("* ");
        }
        System.out.println("");
    }

    for (row = ((MAX_ROWS + 1) / 2); row < MAX_ROWS; row++) {
        for (spaces = 1; spaces < row; spaces++) {
            System.out.print(" ");
        }
        for (stars = 0; stars < MAX_ROWS - row; stars++) {
            System.out.print(" *");
        }
        System.out.println("");
    }
    System.out.println("Diamond, size " + MAX_ROWS + ".");

}

// HOLLOW SQUARE

int loopVariable = 0;  

private static final int MAX_ROWS

while(loopVariable < MAX_ROWS) {               <--- THIS IS THE SYNTAX ERROR LINE
    if(loopVariable == MAX_ROWS - 1 || 
            loopVariable == 0) {

        for(int x=0; x < MAX_ROWS; x++) { 
            System.out.print("* "); 
        } 
    } else { 
        for(int x=0; x < MAX_ROWS; x++ ) { 
            if(x == 0||x == MAX_ROWS-1) {
                System.out.print("* ");
            } else { 
                System.out.print(" "); 
            } 
        } 
    } 
    System.out.println();
    System.out.println("Hollow Square, size " + MAX_ROWS + ".");

    loopVariable++; 
} 
publicstaticvoidmain(字符串[]args){
//TODO自动生成的方法存根
扫描仪扫描=新扫描仪(System.in);
System.out.println(“您好!我是一个绘制形状的程序,但您必须告诉我您希望我制作的形状有多大!”);
System.out.println(“输入形状大小:”);
final int MAX_ROWS=scan.nextInt();
//钻石
整数空间=0,星形,行;

对于(row=1;row您没有将分号放在前一行上。错误不在while循环行上,但编译器仅在到达该行时才注意到错误

private static final int MAX_ROWS
之后插入一个“;”,它应该可以工作


编辑:如果您计划稍后在代码中更改“MAX_ROWS”的值,则还需要从声明中删除“final”。您不能更改“final”值。此外,正如有人提到的,您需要初始化它,例如将其设置为0。您可以稍后更改它。

您没有在前一行中添加分号。错误不在while循环行中,但编译器仅在到达该行时才注意到错误

private static final int MAX_ROWS
之后插入一个“;”,它应该可以工作

编辑:如果您计划稍后在代码中更改“MAX_ROWS”的值,您还需要从声明中删除“final”。您不能更改“final”值。此外,正如有人提到的,您需要初始化它,例如将其设置为0。您可以稍后更改它。

请使用分号(“;”)在前一行的末尾,如下所示:

private static final int MAX_ROWS;
在前一行的末尾放一个分号(“;”),如下所示:

private static final int MAX_ROWS;

<代码>;<代码>在您的while循环之前的行中。它位于无中的地方。<代码>;<代码> >在您的while循环之前。它在中间。我和您在同一时间发布了完全相同的东西——查看时间戳XD(顺便说一下,因为它仍然是正确答案的1)。我已经试过了,但是它给了我一个错误:标记“;”上的语法错误,{在这个标记后面应该有一个“final”int,然后尝试更改它(在代码中就是这样做的)。尝试只使用私有静态int,并确保用一个值初始化它(即“0”)。然后你可以在你的代码中更改它。我想你和我在同一时间发布了完全相同的内容--查看时间戳XD(+1,因为它仍然是正确的答案)我尝试过,但它给了我一个错误:令牌上的语法错误“;”,{在这个令牌之后你不能有一个“final”int,然后尝试更改它(这是您在代码中所做的)。尝试只使用私有静态int,并确保使用值(即“0”)初始化它。然后您可以稍后在代码中更改它