【发布时间】:2021-03-02 02:43:10
【问题描述】:
我正在为圣诞节制作降临日历,需要使用 switch 语句。我最大的困境是每个(daysAway)案例都会打开一个专门为那天设计的新课程。我正在研究 Google 和 Stack Overflow 可以提供的功能。我想知道是否有其他方法可以压缩它?
public void onClick(View v) {
//Calculate the days between (date - 12/7/20)
LocalDate dateBefore = java.time.LocalDate.now();
LocalDate dateAfter = LocalDate.of(2020, Month.DECEMBER, 25);
int daysAway = (int) ChronoUnit.DAYS.between(dateBefore, dateAfter);
switch(daysAway){
case 24:
openDay1();
break;
case 23:
openDay2();
break;
case 22:
openDay3;
break;
case 21:
openDay4;
break;
case 20:
openDay5;
break;
case 19:
openDay6;
break;
case 18:
openDay7;
break;
case 17:
openDay8;
break;
case 16:
openDay9;
break;
case 15:
openDay10;
break;
case 14:
openDay11;
break;
case 13:
openDay12;
break;
case 12:
openDay13;
break;
case 11:
openDay14;
break;
case 10:
openDay15;
break;
case 9:
openDay16;
break;
case 8:
openDay17;
break;
case 7:
openDay18;
break;
case 6:
openDay19;
break;
case 5:
openDay20;
break;
case 4:
openDay21;
break;
case 3:
openDay22;
break;
case 2:
openDay23;
break;
case 1:
openDay24;
break;
case 0:
openChristmas;
break;
default:
notTime.start();
break;
}
}
我知道这是一个巨大的混乱,这就是我要解决的问题! 感谢您提供任何反馈!
【问题讨论】:
-
欢迎来到 Stack Overflow。在您提出下一个问题之前,请花点时间阅读 How to Ask 和 this question checklist。
-
至于您的问题,可能是一个包含 25 个元素的数组,并使用
daysAway作为索引(当然,首先检查它是否是有效索引)。
标签: java switch-statement