第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Java中帶有強(qiáng)制括號(hào)對(duì)的單行循環(huán)

Java中帶有強(qiáng)制括號(hào)對(duì)的單行循環(huán)

肥皂起泡泡 2019-11-20 10:18:33
以下代碼段中的代碼可以正常工作。它計(jì)算使用類型int為的靜態(tài)字段創(chuàng)建的對(duì)象數(shù)cnt。public class Main{    private static int cnt;    public Main()    {        ++cnt;    }    public static void main(String[] args)    {        for (int a=0;a<10;a++)        {            Main main=new Main();        }        /*for (int a=0;a<10;a++)            Main main=new Main();*/        System.out.println("Number of objects created : "+cnt+"\n\n");    }}它顯示以下輸出。Number of objects created : 10唯一的問題是,當(dāng)我從上述for循環(huán)中刪除一對(duì)花括號(hào)時(shí)(請(qǐng)參見注釋for循環(huán)),將發(fā)出編譯時(shí)錯(cuò)誤,指示不是聲明。為什么在這種特殊情況下,即使循環(huán)僅包含一條語句,也必須使用一對(duì)大括號(hào)?
查看完整描述

3 回答

?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊

聲明變量時(shí)(main在這種情況下):


Main main = new Main();

即使有副作用,也不算是陳述。為了使其成為正確的陳述,您應(yīng)該這樣做


new Main();

那為什么


... {

    Main main = new Main();

}

允許嗎?{ ... }是一個(gè)代碼塊,確實(shí)算作一條語句。在這種情況下,可以在聲明之后但在右括號(hào)之前使用該main變量。一些編譯器忽略了它實(shí)際上未被使用的事實(shí),其他編譯器對(duì)此發(fā)出警告。


查看完整回答
反對(duì) 回復(fù) 2019-11-20
?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊


for 定義如下。


BasicForStatement:

    for ( ForInitopt ; Expressionopt ; ForUpdateopt ) Statement


ForStatementNoShortIf:

    for ( ForInitopt ; Expressionopt ; ForUpdateopt ) StatementNoShortIf


ForInit:

    StatementExpressionList

    LocalVariableDeclaration


ForUpdate:

    StatementExpressionList


StatementExpressionList:

    StatementExpression

    StatementExpressionList , StatementExpression

塊定義如下。


塊是括號(hào)內(nèi)的一系列語句,局部類聲明和局部變量聲明語句。


Block:

{ BlockStatementsopt }


BlockStatements:

    BlockStatement

    BlockStatements BlockStatement


BlockStatement:

    LocalVariableDeclarationStatement

    ClassDeclaration

    Statement

語句定義如下。


Statement:

    StatementWithoutTrailingSubstatement

    LabeledStatement

    IfThenStatement

    IfThenElseStatement

    WhileStatement

    ForStatement


StatementWithoutTrailingSubstatement:

    Block

    EmptyStatement

    ExpressionStatement

    AssertStatement

    SwitchStatement

    DoStatement

    BreakStatement

    ContinueStatement

    ReturnStatement

    SynchronizedStatement

    ThrowStatement

    TryStatement


StatementNoShortIf:

    StatementWithoutTrailingSubstatement

    LabeledStatementNoShortIf

    IfThenElseStatementNoShortIf

    WhileStatementNoShortIf

    ForStatementNoShortIf

根據(jù)規(guī)范,LocalVariableDeclarationStatement(未在塊中聲明)(查看塊部分)無效。因此,以下for循環(huán)將報(bào)告您在問題中提到的編譯時(shí)錯(cuò)誤“ 不是語句 ”,除非您使用一對(duì)花括號(hào)。


for (int a=0;a<10;a++)

        Main main=new Main();


查看完整回答
反對(duì) 回復(fù) 2019-11-20
?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

使用新語句創(chuàng)建單行塊可能很有意義。沒有意義的是將對(duì)剛剛創(chuàng)建的對(duì)象的引用保存在單行塊內(nèi),因?yàn)槟鸁o法從for范圍之外訪問變量main。


也許(只是我的猜測),編譯器會(huì)強(qiáng)迫您顯式鍵入括號(hào),因?yàn)樵谶@種情況下,保持引用沒有意義,希望您能意識(shí)到無用的引用。


查看完整回答
反對(duì) 回復(fù) 2019-11-20
  • 3 回答
  • 0 關(guān)注
  • 451 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)