package Ġro cks . daniel w . chapter 6 Ċ Ċ import Ġro cks . daniel w . model . Season Ċ import Ġjava . math . BigDecimal Ċ Ċ fun Ġmain () Ġ{ ĊĊĠ Ġ/* ĊĠĠ Ġ* ĠThe Ġwhen Ġexpression Ġis Ġessentially Ġthe Ġsame Ġas Ġthe Ġswitch Ġstatement Ġin ĠJava ĊĠĠ Ġ* Ġbut Ġmuch Ġbetter Ġ( like Ġnew ĠJava Ġswitch Ġstatement Ġin ĠJava Ġ 1 2 ). ĊĠĠ Ġ*/ ĊĠ Ġval Ġnum Ġ= Ġ 2 0 0 ĊĊĠ Ġwhen ( num ) Ġ{ ĊĠĠĠĠ 1 0 0 Ġ-> Ġprintln (" 1 0 0 ") ĊĠĠĠĠ 2 0 0 Ġ-> Ġprintln (" 2 0 0 ") ĊĠĠĠĠ 3 0 0 Ġ-> Ġprintln (" 3 0 0 ") ĊĠĠĠ Ġelse Ġ-> Ġprintln (" does n 't Ġmatch Ġanything ") ĊĠ Ġ} ĊĊĊĠ Ġ/* ĊĠĠ Ġ* ĠMulti - cases ĊĠĠ Ġ*/ ĊĠ Ġval Ġnum 2 Ġ= Ġ 1 5 0 ĊĊĠ Ġwhen ( num 2 ) Ġ{ ĊĠĠĠĠ 1 0 0 , Ġ 1 5 0 Ġ-> Ġprintln (" 1 0 0 Ġor Ġ 1 5 0 ") ĊĠĠĠĠ 2 0 0 , Ġ 2 5 0 Ġ-> Ġprintln (" 2 0 0 Ġor Ġ 2 5 0 ") ĊĠĠĠĠ 3 0 0 Ġ-> Ġprintln (" 3 0 0 ") ĊĠĠĠ Ġelse Ġ-> Ġprintln (" does n 't Ġmatch Ġanything ") ĊĠ Ġ} ĊĊĊĠ Ġ/* ĊĠĠ Ġ* ĠUsing Ġranges ĊĠĠ Ġ*/ ĊĠ Ġval Ġnum 3 Ġ= Ġ 1 5 0 ĊĊĠ Ġwhen ( num 2 ) Ġ{ ĊĠĠĠ Ġin Ġ 1 0 0 .. 1 5 0 Ġ-> Ġprintln (" between Ġ 1 0 0 Ġand Ġ 1 5 0 ") ĊĠĠĠ Ġin Ġ 2 0 0 .. 2 5 0 Ġ-> Ġprintln (" between Ġ 2 0 0 Ġand Ġ 2 5 0 ") ĊĠĠĠĠ 3 0 0 Ġ-> Ġprintln (" 3 0 0 ") ĊĠĠĠ Ġelse Ġ-> Ġprintln (" does n 't Ġmatch Ġanything ") ĊĠ Ġ} ĊĊĊĠ Ġ/* ĊĠĠ Ġ* ĠUsing Ġexpressions ĊĠĠ Ġ*/ ĊĠ Ġval Ġnum 4 Ġ= Ġ 1 0 ĊĊĠ Ġwhen ( num 2 ) Ġ{ ĊĠĠĠ Ġnum 4 Ġ+ Ġ 9 0 Ġ-> Ġprintln (" 1 0 0 ") ĊĠĠĠ Ġnum 4 Ġ+ Ġ 1 9 0 Ġ-> Ġprintln (" 2 0 0 ") ĊĠĠĠĠ 3 0 0 Ġ-> Ġprintln (" 3 0 0 ") ĊĠĠĠ Ġelse Ġ-> Ġprintln (" does n 't Ġmatch Ġanything ") ĊĠ Ġ} ĊĊĊĠ Ġ/* ĊĠĠ Ġ* ĠUsing Ġis Ġand ĠSmart ĠCast Ġfeature ĊĠĠ Ġ*/ ĊĠ Ġval Ġobj 1 : ĠAny Ġ= ĠBigDecimal ( 2 5 . 5 ) ĊĠ Ġval Ġobj 2 : ĠAny Ġ= Ġobj 1 ĊĊĠ Ġwhen ( obj 2 ) Ġ{ ĊĠĠĠ Ġis ĠString Ġ-> Ġprintln ( obj 2 . toUpperCase ()) ĊĠĠĠ Ġis ĠBigDecimal Ġ-> Ġprintln ( obj 2 . remainder ( BigDecimal ( 1 0 . 5 ))) ĊĠĠĠ Ġis ĠInt Ġ-> Ġprintln ("${ obj 2 Ġ- Ġ 4 }") ĊĠ Ġ} ĊĊĊĠ Ġ/* ĊĠĠ Ġ* ĠAssign ing Ġwhen Ġexpression Ġto Ġvariable ĊĠĠ Ġ*/ ĊĠ Ġval Ġnum 5 Ġ= Ġ 2 0 0 ĊĠ Ġval Ġwhen Expression Ġ= Ġwhen ( num 5 ) Ġ{ ĊĠĠĠĠ 1 0 0 Ġ-> Ġ{ ĊĠĠĠĠĠ Ġprint (" 1 0 0 ") ĊĠĠĠĠĠ Ġ", ĠIt Ġis Ġ 1 0 0 " ĊĠĠĠ Ġ} ĊĠĠĠĠ 2 0 0 Ġ-> Ġ{ ĊĠĠĠĠĠ Ġprint (" 2 0 0 ") ĊĠĠĠĠĠ Ġ", ĠIt Ġis Ġ 2 0 0 " ĊĠĠĠ Ġ} ĊĠĠĠĠ 3 0 0 Ġ-> Ġ{ ĊĠĠĠĠĠ Ġprint (" 3 0 0 ") ĊĠĠĠĠĠ Ġ", ĠIt Ġis Ġ 3 0 0 " ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠ Ġprint (" does n 't Ġmatch Ġanything ") ĊĠĠĠĠĠ Ġ". ĠDon 't Ġknow Ġwhat Ġit Ġis " ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprintln ( when Expression ) ĊĠ Ġval Ġresult Ġ= Ġwhen Expression ĊĠ Ġprintln (" Result Ġis Ġ'$ result '") ĊĊĊĠ Ġ/* ĊĠĠ Ġ* ĠUsing Ġenums ĊĠĠ Ġ*/ ĊĠ Ġval Ġtime OfYear Ġ= ĠSe ason . W INTER ĊĠ Ġval Ġstr Ġ= Ġwhen Ġ( time OfYear ) Ġ{ ĊĠĠĠ ĠSe ason . SPR ING Ġ-> Ġ" Flow ers Ġare Ġb loom ing " ĊĠĠĠ ĠSe ason . SUM MER Ġ-> Ġ" It 's Ġhot !" ĊĠĠĠ ĠSe ason . FALL Ġ-> Ġ" It 's Ġgetting Ġcool er " ĊĠĠĠ ĠSe ason . W INTER Ġ-> Ġ" I Ġneed Ġa Ġco at " ĊĠĠĠ Ġ// Ġwe Ġdon 't Ġneed Ġan Ġelse , Ġbecause Ġwe Ġuse Ġall Ġenum Ġvalues Ġhere ĊĠ Ġ} ĊĠ Ġprintln ( str ) ĊĊĊĠ Ġvar Ġnum 6 Ġ= Ġ 1 0 ĊĠ Ġval Ġanother Time OfYear Ġ= ĠSe ason . SPR ING ĊĠ Ġval Ġstr 2 Ġ= Ġwhen Ġ( another Time OfYear ) Ġ{ ĊĠĠĠ ĠSe ason . SPR ING Ġ-> Ġ{ ĊĠĠĠĠĠ Ġnum 6 Ġ+= Ġ 5 ĊĠĠĠĠĠ Ġ" Flow ers Ġare Ġb loom ing " ĊĠĠĠ Ġ} ĊĠĠĠ ĠSe ason . SUM MER Ġ-> Ġ" It 's Ġhot !" ĊĠĠĠ ĠSe ason . FALL Ġ-> Ġ" It 's Ġgetting Ġcool er " ĊĠĠĠ ĠSe ason . W INTER Ġ-> Ġ{ ĊĠĠĠĠĠ Ġnum 6 Ġ+= Ġ 1 0 ĊĠĠĠĠĠ Ġ" I Ġneed Ġa Ġco at " ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠ Ġprintln ("$ str 2 Ġ$ num 6 ") ĊĊĊĠ Ġ/* ĊĠĠ Ġ* ĠSh orthand Ġfor Ġtesting Ġconditions ĊĠĠ Ġ*/ ĊĠ Ġval Ġnumber 1 Ġ= Ġ 1 0 ĊĠ Ġval Ġnumber 2 Ġ= Ġ 2 0 ĊĊĠ Ġwhen Ġ{ ĊĠĠĠ Ġnumber 1 Ġ> Ġnumber 2 Ġ-> Ġprintln (" number 1 Ġis Ġgreater Ġthan Ġnumber 2 ") ĊĠĠĠ Ġnumber 1 Ġ< Ġnumber 2 Ġ-> Ġprintln (" number 1 Ġis Ġless Ġthan Ġnumber 2 ") ĊĠĠĠ Ġelse Ġ-> Ġprintln (" number 1 Ġis Ġis Ġequal Ġto Ġnumber 2 ") ĊĠ Ġ} Ċ } Ċ