Scanner in = new Scanner(System.in); String[] num = new String[6]; System.out.println("请输入六个数"); for (int i=0;i<num.length;i++){ args[i]=in.next(); }找出错误并纠正
时间: 2024-01-24 21:02:46 浏览: 70
在循环中,应该是 `num[i]` 而不是 `args[i]`,因为数组名应该与定义时相同。因此,代码应该改为:
```
Scanner in = new Scanner(System.in);
String[] num = new String[6];
System.out.println("请输入六个数");
for (int i=0; i<num.length; i++){
num[i] = in.next();
}
```
相关问题
import java.util.Scanner; public class RandomPractice { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num1 = (int) (Math.random() * 50) + 10; int num2 = (int) (Math.random() * 50) + 10; int sum = num1 + num2; System.out.println(num1+"+"+num2+"=?"); int input = scanner.nextInt(); System.out.println("请输入您的答案:"); if (input == sum) { System.out.println("正确!"); } else { System.out.println("错误!"); } scanner.close(); } }解释这段代码
这是一个Java程序,实现了一个简单的随机数加法练习。下面是代码的详细解释:
1. 导入Scanner类:
```
import java.util.Scanner;
```
这行代码导入了Java中的Scanner类,用于读取用户的输入。
2. 定义RandomPractice类:
```
public class RandomPractice {
```
这行代码定义了一个名为RandomPractice的类,该类包含了main方法。
3. 定义main方法:
```
public static void main(String[] args) {
```
这行代码定义了一个名为main的方法,该方法是Java程序的入口点。
4. 创建Scanner对象:
```
Scanner scanner = new Scanner(System.in);
```
这行代码创建了一个名为scanner的Scanner对象,用于读取用户的输入。
5. 生成两个随机数:
```
int num1 = (int) (Math.random() * 50) + 10;
int num2 = (int) (Math.random() * 50) + 10;
```
这两行代码使用了Math.random()方法生成两个随机数num1和num2,它们的范围是10到59之间的整数。
6. 计算正确答案:
```
int sum = num1 + num2;
```
这行代码计算了正确答案,即num1和num2的和。
7. 输出问题:
```
System.out.println(num1+"+"+num2+"=?");
```
这行代码输出了一个问题,即num1和num2的和应该是多少。
8. 读取用户输入:
```
int input = scanner.nextInt();
```
这行代码使用scanner对象的nextInt()方法读取用户输入的整数值,并将其存储在变量input中。
9. 输出结果:
```
if (input == sum) {
System.out.println("正确!");
} else {
System.out.println("错误!");
}
```
这段代码使用if-else语句判断用户输入的值是否等于正确答案sum,如果相等,则输出“正确!”;否则输出“错误!”。
10. 关闭Scanner对象:
```
scanner.close();
```
这行代码关闭了scanner对象,释放了与之关联的资源。
综上所述,这段代码实现了一个简单的随机数加法练习,让用户输入答案并判断其是否正确。
优化这段代码import java.util.Scanner; public class Grades { static class Student { enum Grade {Excellent, Fair, Good, Poor, Failed} static void score2(int g) { if(g/10>=6) { switch (g / 10) { case 10: Grade a = Grade.Excellent; System.out.println(a); break; case 9: Grade b = Grade.Excellent; System.out.println(b); break; case 8: Grade c = Grade.Good; System.out.println(c); break; case 7: Grade d = Grade.Fair; System.out.println(d); break; case 6: Grade e = Grade.Poor; System.out.println(e); break; default: Grade f = Grade.Failed; System.out.println(f); break; } } } public static void main(String[] args) { //输入学生人数 System.out.println("请输入学生数(>1的整数):"); Scanner num = new Scanner(System.in); int number = num.nextInt(); //输入学生成绩 System.out.println("请输入6位学生的Java成绩[0,100](以空格为间隔):"); Scanner sc = new Scanner(System.in);//输入成绩 String str = sc.nextLine(); //将输入数字以空格为界分开,并转为String数组 String[] s = str.split(" "); //String转为int int[] intArr = new int[str.length]; for (int i = 0; i < str.length; i++) { intArr[i] = Integer.parseInt(str[i]); } //遍历数组 for (int i = 0; i < s.length; i++) { //将遍历得到每个数组 用Integer.parseInt方法将String数组转为十进制的数 int grade = Integer.parseInt(s[i]); } for (int i = 0; i < s.length; i++) { System.out.println(s[i]); System.out.println(score2()); } } } }
这段代码可以进行优化,比如可以将输入学生成绩的部分改为使用循环来输入,而不是一次性输入所有学生成绩。另外,在score2方法中,可以使用if-else语句来代替switch语句,这样可以使代码更加简洁。
阅读全文