10、java用户输入分数,判断优(90-100)良(80-90)中(60-70)差(小于60),小于0,大于100提示“输入有误”,使用switch实现。使用if不是更简单么,使用switch是不是要写很多个case什么的
if判断范围简单一些,switch也行
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入分数: ");
int score = scanner.nextInt();
if (score < 0 || score > 100) {
System.out.println("输入有误!分数应在0到100之间。");
} else {
int grade = score / 10;
switch (grade) {
case 10:
case 9:
System.out.println("优");
break;
case 8:
System.out.println("良");
break;
case 7:
System.out.println("中");
break;
default:
System.out.println("差");
break;
}
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话:相同之处:
都是分支语句,多超过一种的情况进行判断处理
不同之处:
switch更适合多分支情况,判断条件单一,只有一个入口,在分支执行完之后,如果没有break跳出,不加判断的执行下去;而if–elseif—else多分支主要适用于分支比较少的结构,判断类型不是单一,只要一个分支被执行后,后边的分支不再执行。
switch为等值判断,不允许加>=,<=,而if为等值和区间都可以,if的使用范围更大。
使用switch语句对用户输入的分数进行判断,并输出对应的评价等级(优、良、中、差)的解决方案
// 先获取用户输入的分数
var score = prompt('请输入您的分数:');
// 将分数转成数字类型
score = Number(score);
// 判断分数是否在0-100之间
if (isNaN(score) || score < 0 || score > 100) {
console.log('输入有误');
} else {
// 如果分数正确,则根据不同分数区间进行评价等级的输出
switch (Math.floor(score / 10)) {
case 10:
case 9:
console.log('优');
break;
case 8:
console.log('良');
break;
case 7:
console.log('中');
break;
default:
console.log('差');
break;
}
}
以上代码中,首先获取用户输入的分数并将其转成数字类型。然后对于分数的范围进行判断,如果不在0-100(包含0和100)之间,则输出“输入有误”,否则通过switch语句判断分数属于哪个区间,进而输出对应的评价等级。由于这里是根据10分为一个区间进行判断的,因此用Math.floor(score / 10)获取到分数属于哪个区间。最后使用console.log()输出对应的评价等级即可。
是的,但是题目就是这么要求的
一个思路就是对分数 - 1 % 10,然后
case 9:
...
case 8:
...
import java.util.Scanner;
public class Program {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入分数:");
int score = scanner.nextInt();
int adjustedScore = (score - 1) % 10; // 对输入的分数进行调整
String grade;
switch (adjustedScore) {
case 9:
case 8:
grade = "优";
break;
case 7:
grade = "良";
break;
case 6:
grade = "中";
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
grade = "差";
break;
default:
grade = "输入有误";
break;
}
System.out.println("等级是:" + grade);
}
}