关于Java中if-else的优化问题
问题描述
这是一个比较简单的题目,都会写,我想问的是,这些if-else能否优化
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter the number of students:");
int n = input.nextInt();
int[] score = new int[n];
System.out.println("Enter scores:");
int max = 0;
for (int i = 0; i < n; i++) {
score[i] = input.nextInt();
if (score[i] > max) {
max = score[i];
}
}
for (int i = 0; i < n; i++) {
if (score[i] >= max - 10)
System.out.println("Student " + i + " score is " + score[i] + " and grade is A");
else if (score[i] >= max - 20 && score[i] < max - 10)
System.out.println("Student " + i + " score is " + score[i] + " and grade is B");
else if (score[i] >= max - 30 && score[i] < max - 20)
System.out.println("Student " + i + " score is " + score[i] + " and grade is C");
else if (score[i] >= max - 40 && score[i] < max - 30)
System.out.println("Student " + i + " score is " + score[i] + " and grade is D");
else
System.out.println("Student " + i + " score is " + score[i] + " and grade is F");
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可参考下面的代码
基本思路是数据与逻辑分离,消除重复部分, 便于扩展和维护, 但可读性有所下降. 可以通过封装成方法, 提高可读性.
对于区间很多, 对应关系复杂时, 可以使用 Guava 的 RangeMap 类处理, 会更方便.
参考:
https://stackoverflow.com/que...