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

09-30 10:57