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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

合并多個 if 語句

合并多個 if 語句

呼喚遠(yuǎn)方 2023-09-13 10:28:11
我有以下代碼,它依賴于多個不同的 if 語句。我正在為 Android 制作 Cribbage 分?jǐn)?shù)計數(shù)應(yīng)用程序。顯示的代碼僅適用于藍(lán)隊,但我最終為藍(lán)隊編寫的代碼也將用于紅隊和綠隊。我現(xiàn)在擁有的東西可以用,但它很笨重。我是 java 新手,希望獲得一些有關(guān)將代碼合并到更易于閱讀和維護(hù)的最佳實(shí)踐的指導(dǎo)。    if(blueTeamScore >= ENDGAMESCORE) {        String baseVictoryText = "Blue Team has won!";        TextView winningTeamTextView = (TextView) findViewById(R.id.winningTeam);        if(hasThreePlayer == false) {            winningTeamTextView.setText(baseVictoryText);            if (hasSkunk == true) {                if (redTeamScore <= 90) {                    winningTeamTextView.setText(baseVictoryText + "\nAnd Red Team got Skunked");                }            }        }        if(hasThreePlayer == true) {            winningTeamTextView.setText(baseVictoryText);            if (hasSkunk == true) {                if ((redTeamScore <= 90) && (greenTeamScore <= 90)) {                    winningTeamTextView.setText(baseVictoryText + "\nAnd Red and Green Teams got Skunked");                }                if ((redTeamScore <= 90) && (greenTeamScore >= 90)) {                    winningTeamTextView.setText(baseVictoryText + "\nAnd Red Team got Skunked");                }                if ((redTeamScore >= 90) && (greenTeamScore <= 90)) {                    winningTeamTextView.setText(baseVictoryText + "\nAnd Green Team got Skunked");                }            }        }    }我知道布爾變量不能在 switch 語句中使用(太糟糕了),但是還有其他類似的東西可以幫助集中我的代碼嗎?
查看完整描述

3 回答

?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個贊

我仍然認(rèn)為自己相當(dāng)新,但這就是我會寫的內(nèi)容。我編輯了幾次。


if (hasSkunk) {

    if (!hasThreePlayer) {

        if (redTeamScore<=90) {

            baseVictoryText += "\nAnd Red Team got Skunked";

        }

    } else {

        if ((redTeamScore <= 90) && (greenTeamScore <= 90)) {

            baseVictoryText += "\nAnd Red and Green Teams got Skunked";

        } else if (redTeamScore <= 90) {

            baseVictoryText += "\nAnd Red Team got Skunked";

        } else if (greenTeamScore <= 90) {

            baseVictoryText += "\nAnd Green Team got Skunked";

        }

    }

}

winningTeamTextView.setText(baseVictoryText);

假設(shè)您不介意更改 baseVictoryText (不是常量)。否則將其分配給其他東西并使用它


不假設(shè)“hasSkunk”意味著至少有一支球隊的得分<90,否則最后一個 else if 會變成 else ...


由于性能原因,“Else if”在理論上會更好 - 只有在其中一個為真時才會評估 if。這在這里不是問題,但如果其中一個條件是某種重型方法的結(jié)果......


像這樣的一堆 Else If 的工作方式非常類似于帶有中斷的 switch。


查看完整回答
反對 回復(fù) 2023-09-13
?
撒科打諢

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

您可以嘗試三元運(yùn)算符 ?: 。上面代碼中的示例我只是簡化了某些部分。你可以嘗試其他類似的東西


        if(!hasThreePlayer) {

            winningTeamTextView.setText(hasSkunk&&redTeamScore<=90 ? baseVictoryText + "\nAnd Red Team got Skunked" : baseVictoryText);

        }

        else {

            winningTeamTextView.setText(baseVictoryText);

            if (hasSkunk) {

                if ((redTeamScore <= 90) && (greenTeamScore <= 90)) {

                    winningTeamTextView.setText(baseVictoryText + "\nAnd Red and Green Teams got Skunked");

                }

                if ((redTeamScore <= 90) && (greenTeamScore >= 90)) {

                    winningTeamTextView.setText(baseVictoryText + "\nAnd Red Team got Skunked");

                }

                if ((redTeamScore >= 90) && (greenTeamScore <= 90)) {

                    winningTeamTextView.setText(baseVictoryText + "\nAnd Green Team got Skunked");

                }

            }

        }


查看完整回答
反對 回復(fù) 2023-09-13
?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個贊

更干凈一點(diǎn),因?yàn)橹辉谝粋€地方設(shè)置 textField,不需要 == 一個布爾值,if 應(yīng)該分支,因?yàn)槿绻粋€成功,另一個就會失敗。與初始響應(yīng)略有不同。


if(blueTeamScore >= ENDGAMESCORE) {

    String victoryText = "Blue Team has won!";


    if(!hasThreePlayer && hasSkunk && redTeamScore <= 90) {

        victoryText += "\nAnd Red Team got Skunked");


    }else if(hasThreePlayer && hasSkunk) {

       if (redTeamScore <= 90 && greenTeamScore <= 90) {

          victoryText +=  "\nAnd Red and Green Teams got Skunked";

       }else if (redTeamScore <= 90) {

          victoryText +=  "\nAnd Red Team got Skunked";

       }else if (greenTeamScore <= 90) {

          victoryText += "\nAnd Green Team got Skunked";

       }

    }


    TextView winningTeamTextView = (TextView) findViewById(R.id.winningTeam);

    //maybe check for null textfield here?

    winningTeamTextView.setText(victoryText);

}

但我會分解成一個函數(shù)


 if(blueTeamScore >= ENDGAMESCORE) {

    String victoryText = "Blue Team has won!";

    if(hasSkunk){

        victoryText += getSkunkText(hasThreePlayer, redTeamScore, greenTeamScore)

    }


    TextView winningTeamTextView = (TextView) findViewById(R.id.winningTeam);

    //maybe check for null textfield here?

    winningTeamTextView.setText(victoryText);

}

功能:


private String getSkunkText(boolean hasThreePlayer, int redTeamScore, int greenTeamScore){

    String skunkText  = ""

    if(!hasThreePlayer) {

        skunkText = redTeamScore <= 90 ? "\nAnd Red Team got Skunked") : skunkText;

    }else if (redTeamScore <= 90 && greenTeamScore <= 90) {

        skunkText =  "\nAnd Red and Green Teams got Skunked";

    }else if ( redTeamScore <= 90) {

        skunkText =  "\nAnd Red Team got Skunked";

    }else if (greenTeamScore <= 90) {

        skunkText = "\nAnd Green Team got Skunked";

    }

    return skunkText; 

}


查看完整回答
反對 回復(fù) 2023-09-13
  • 3 回答
  • 0 關(guān)注
  • 142 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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