键盘输入一个[0,100]的合法成绩,如果不合法继续输入,直到合法为止java
时间: 2023-05-24 20:06:55 浏览: 68
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int score = -1; // 初始化为非法值
while (score < 0 || score > 100) { // 只要不合法就继续输入
System.out.print("请输入一个0到100的成绩:");
score = sc.nextInt();
}
System.out.println("您输入的合法成绩为:" + score);
}
}
相关问题
用Java语言 编写一个程序进行一个班某门课程成绩的录入,能够控制录入成绩总人数,对录入成绩统计其及格人数和不及格人数。设计一个异常类,当输入的成绩小0分或大于100分时,抛出该异常类对象,程序将捕捉这个异常对象,并调用执行该异常类对象的toString()方法,该方法获取当前无效分数值,并返回一个此分数无效的字符串。 输入格式: 从键盘中输入学生人数n 从键盘中输入第1个学生的成绩 从键盘中输入第2个学生的成绩 ... 从键盘中输入第n个学生的成绩 (注:当输入的成绩无效时(即分数为小于0或大于100)可重新输入,且输出端会输出此分数无效的提醒。) 输出格式: 显示及格总人数 显示不及格总人数
好的,以下是Java代码实现:
```java
import java.util.Scanner;
class InvalidScoreException extends Exception {
private int score;
public InvalidScoreException(int score) {
this.score = score;
}
public String toString() {
return "无效分数:" + score;
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入学生人数:");
int n = scanner.nextInt();
int passCount = 0;
int failCount = 0;
for (int i = 1; i <= n; i++) {
boolean validScore = false;
int score = -1;
while (!validScore) {
System.out.print("请输入第" + i + "个学生的成绩:");
score = scanner.nextInt();
try {
if (score < 0 || score > 100) {
throw new InvalidScoreException(score);
}
validScore = true;
} catch (InvalidScoreException e) {
System.out.println(e.toString());
}
}
if (score >= 60) {
passCount++;
} else {
failCount++;
}
}
System.out.println("及格总人数:" + passCount);
System.out.println("不及格总人数:" + failCount);
}
}
```
程序中定义了一个自定义的异常类 `InvalidScoreException`,用于处理无效的分数输入。当输入的分数小于0或大于100时,就会抛出该异常。
在输入学生成绩时,如果输入的成绩无效,则会重新输入,直到输入的成绩合法为止。同时还会统计及格人数和不及格人数,并输出到控制台上。
javc程序直到键盘输入数字88,使用break退出循环 键盘输入66,直接显示“重新开始计算,然后算下一个人用户的年薪
可以使用如下的 Java 代码实现该需求:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int salary = 0;
while (true) {
System.out.print("请输入年龄:");
int age = scanner.nextInt();
System.out.print("请输入工作年限:");
int years = scanner.nextInt();
if (age < 18 || years < 0) {
System.out.println("输入不合法,请重新输入!");
continue;
}
if (age >= 18 && age <= 35 && years >= 1 && years <= 3) {
salary = 5000 + (int) (Math.random() * 1000);
} else if (age >= 18 && age <= 35 && years >= 4 && years <= 6) {
salary = 8000 + (int) (Math.random() * 2000);
} else if (age >= 36 && age <= 50 && years >= 1 && years <= 3) {
salary = 6000 + (int) (Math.random() * 1000);
} else if (age >= 36 && age <= 50 && years >= 4 && years <= 6) {
salary = 10000 + (int) (Math.random() * 2000);
} else {
salary = 0;
}
if (salary == 0) {
System.out.println("抱歉,您的年龄或工作年限不符合要求,无法计算年薪!");
} else {
System.out.println("您的年薪为:" + salary + "元");
}
System.out.print("请输入数字继续计算,输入88退出程序:");
int input = scanner.nextInt();
if (input == 88) {
break;
} else if (input != 66) {
System.out.println("输入不合法,程序将重新计算下一个人的年薪!");
} else {
System.out.println("重新开始计算,然后算下一个人用户的年薪!");
}
}
scanner.close();
}
}
```
该程序会不断循环,直到用户输入数字88为止。在每次循环中,用户需要输入自己的年龄和工作年限,程序会根据这些信息计算出用户的年薪。如果用户的年龄或工作年限不符合要求,则无法计算年薪。当计算完一个人的年薪后,程序会提示用户输入数字继续计算,输入66则重新开始计算下一个人的年薪,否则程序会提示输入不合法并重新计算下一个人的年薪。