每当得分达到以09结尾的数字时,我都会播放1种声音。
每次得分达到以19、29、39、49、59、69、79和89结尾的数字时,我也会依次播放4种声音。
然后我每次得分达到以99结尾的数字时都会播放1种声音。
我的代码有效,但是我觉得应该有一种方法可以更优雅地做到这一点。
if (score == 9 || score == 109 || score == 209 ...) {
play('sound1.mp3');
}
if (score == 19 || score == 59 || score == 119 || score == 159 ...) {
play('sound2.mp3');
}
if (score == 29 || score == 69 || score == 129 || score == 169 ...) {
play('sound3.mp3');
}
if (score == 39 || score == 79 || score == 139 || score == 179 ...) {
play('sound4.mp3');
}
if (score == 49 || score == 89 || score == 149 || score == 189 ...) {
play('sound5.mp3');
}
if (score == 99 || score == 199 ...) {
play('sound6.mp3');
}
想法?请像程序员一样帮助我考虑一下。 :D
答案 0 :(得分:5)
9、109、209等之间的共同点是,除以100会得到 9的余数。
99、199、299等之间的共同点是,除以100会得到 99的余数。
在Dart中,余数由模运算符%
计算。
var remainder = score % 100;
if (remainder == 9) {
// 9, 109, 209, ...
} else if (remainder == 99) {
// 99, 199, 299, ...
} else if (score % 10 == 9) {
// other numbers ending in 9
}