每当比分达到以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 最佳答案
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
}