每日一練124——Java訓練if..else和三元運算符(8kyu)

引言

訓練JS#7:
if..else和三元運算符

在Javascript中,if..else是最基本的條件語句,它由三部分組成:condition, statement1, statement2像這樣:

if (condition) statementa
else           statementb

這意味著如果條件為真,則執(zhí)行statementa,否則執(zhí)行statementb。如果statementa或statementb多行,則需要在JS的頭尾添加{}保持相同的縮進Python并將它放在endRuby確實結束的地方。

例如,如果我們想判斷數(shù)字是奇數(shù)還是偶數(shù),我們可以編寫如下代碼:

public static string OddEven(final int n){
  if (n%2==1) return "odd number";
  else        return "even number";
}

如果要判斷多個條件,我們可以使用復合if ... else語句。一個例子:

public static string OldYoung(final int age){
  if (age<16)      return "children";
  else if (age<50) return "young man";   //use "else if" if needed
  else             return "old man";
}

此函數(shù)根據(jù)參數(shù)年齡返回不同的值。

看起來很復雜?好吧,JS和Ruby也支持ternary operator,Python也有類似的東西:

condition ? statementa : statementb

條件和語句用“?”分隔,在Ruby和JS中用“:”分隔的不同語句; 在Python中,您將條件置于兩個備選方案的中間。上面的兩個例子可以用三元運算符簡化:

public static string OddEven(final int n){
  return n%2==1 ? "odd number" : "even number";
}
public static string OldYoung(final int age){
  return age<16 ? "children" : age<50 ? "young man" : "old man";
}

任務:

功能齊全saleHotdogs/ SaleHotDogs,功能接受1個參數(shù):n,n是購買熱狗的客戶數(shù)量,不同的數(shù)量有不同的價格(參考下表),返回一個數(shù)字表示客戶需要支付多少錢。

+---------------+-------------+
|  numbers n    | price(cents)|
+---------------+-------------+
|n<5            |    100      |
+---------------+-------------+
|n>=5 and n<10  |     95      |
+---------------+-------------+
|n>=10          |     90      |
+---------------+-------------+

您可以使用if..else或三元運算符來完成它。

When you have finished the work, click "Run Tests" to see if your code is working properly.

In the end, click "Submit" to submit your code pass this kata.

測試用例:

import org.junit.Test;
import static org.junit.Assert.assertEquals;
import org.junit.runners.JUnit4;


public class SaleHotdogsTest {
    @Test
    public void BasicTests() {
      assertEquals(100,SaleHotdogs.saleHotdogs(1));
      assertEquals(400,SaleHotdogs.saleHotdogs(4));
      assertEquals(475,SaleHotdogs.saleHotdogs(5));
      assertEquals(855,SaleHotdogs.saleHotdogs(9));
      assertEquals(900,SaleHotdogs.saleHotdogs(10));
      assertEquals(9000,SaleHotdogs.saleHotdogs(100));
    }
}

解題

My

public class SaleHotdogs{
  public static int saleHotdogs(final int n){
    if (n >= 10) {
      return 90*n;
    } else if (n >= 5 && n < 10) {
      return 95*n;
    } else { // n<5
      return 100*n;
    }
  }
}

Other

public class SaleHotdogs{
  public static int saleHotdogs(final int n){
    return ( n < 5 ? 100 : n >= 5 && n < 10 ? 95 : 90 ) * n;
  }
}

后記

三元在實踐中還是不要用了。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 6,353評論 0 10
  • 一、異同對比選擇1、Python和ruby的相同點: * 都強調(diào)語法簡單,都具有更一般的表達方式。python是縮...
    沃倫蓋茨閱讀 4,307評論 2 24
  • 包(lib)、模塊(module) 在Python中,存在包和模塊兩個常見概念。 模塊:編寫Python代碼的py...
    清清子衿木子水心閱讀 3,922評論 0 27
  • 用戶體驗——百科的定義是 用戶使用產(chǎn)品過程中建立起來的純主觀感受 這次考核讓我印象最深刻的一個詞就是用戶體驗。 站...
    宋瑞楠_三月閱讀 384評論 3 2
  • 人工智能的到來,未來將面臨無工可打,危機四伏之中,馬云的無人酒店也來了…… 馬云的未來酒店將會徹底顛覆酒店行業(yè),就...
    玹燃法則閱讀 722評論 0 0

友情鏈接更多精彩內(nèi)容