【问题标题】:In which situations curly braces are used in loops in Java? Have a look at this code [duplicate]在 Java 的循环中哪些情况下使用花括号?看看这段代码[重复]
【发布时间】:2023-03-23 16:03:02
【问题描述】:
class things {
    public static void main(String args[]) {
        int [][] nothing;
        nothing = new int [4][5];
        int i,j,k = 0;

        for(i=0;i<4;i++)
            for(j=0;j<5;j++) {
                nothing[i][j] = k;
                k++;
            }

        // Display the 2-D array
        for(i=0;i<4;i++) {
            for(j=0;j<5;j++)
                System.out.print(nothing[i][j] + " ");
            System.out.println();
        }
    }
}

在给定的代码中,{ 在第一个循环集的第二个嵌套 for 循环中,但 { 在第二个循环集的循环的第一行。 那么为什么以及何时在 Java 的循环中使用 {}。我的意思是当 {} 被移除时,我会得到完全不同的输出。

【问题讨论】:

    标签: java arrays loops


    【解决方案1】:

    if 语句是 specified 为(简化):

    if ( Expression ) Statement

    if ( Expression ) Statement else Statement

    也就是说,根据规范,不需要花括号,但每个分支只能使用一个语句(ifelse)。要在一个分支中使用多个语句,可以使用 block(大括号内)。

    建议 (IMO) 在 if 语句中始终使用大括号,即使只需要一个分支语句。更容易维护——添加额外语句时无需添加大括号;更容易阅读;有助于防止出现一些错误,例如在代码缩进错误时忘记它们,例如:

    if (foobar)
        System.out.print("foo");
        System.out.print("bar");    // this and next will always be executed,
        System.out.println();       // even if foobar is false
    
    System.out.println("done);
    

    Obs:有些语句需要花括号,例如 switch 语句:

    switch ( Expression ) { ... }

    此处必须使用它们(try 声明或 class 声明相同)

    【讨论】:

    • 谢谢你的帮助
    【解决方案2】:

    如果 for 循环的主体包含一个语句,您实际上不需要放置花括号。如果省略花括号,则只会执行第一个 Java 语句,然后自动将第 2 行视为循环的外部部分。

    for(int i = 0; i < 10; i++)
    System.out.println("i is: " + i);  // executed inside  loop.
    System.out.println("second line");   // executed after   loop.
    

    【讨论】:

    • 这是正确的。但是我建议不要使用这个特性——人们习惯于以某种方式阅读代码,如果你打破常规风格,很容易误读这样的代码。这也使得编辑代码变得困难——如果你需要添加第二行,你需要记住在其中添加卷曲(这很容易做到,而且会花费你时间弄清楚)。总是使用大括号并避免问题更容易。
    • @GabeSechan 完全同意:)。
    猜你喜欢
    • 1970-01-01
    • 2017-10-17
    • 2022-12-14
    • 2013-01-20
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    相关资源
    最近更新 更多