Java 用Scanner实例sc调用next()方法接收键盘输入的数据并用赋值变量name,然后再System.outprintln()中把接收的学生名字作为输出结果的一部分)
时间: 2023-05-19 19:01:04 浏览: 82
可以使用以下代码实现:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入学生姓名:");
String name = sc.next();
System.out.println("学生姓名为:" + name);
}
}
```
这段代码中,首先创建了一个Scanner对象sc,然后使用sc.next()方法接收键盘输入的数据,并将其赋值给变量name。最后使用System.out.println()方法输出学生姓名。
相关问题
import java.util.Scanner; public class geshibai { public static void main(String[] args) { Scanner sc =new Scanner(System.in); System.out.println("请输入整数"); int i =sc.nextInt();//接收这个数字并赋值给左边的参数 System.out.println("个位是"+i%10); System.out.println("十位是"+i/10%10); System.out.println("百位是"+i/100%10); } }如何实现判断输入的数据是否是三位数,三位数如何实现提示并且重新输入
要实现判断输入的数据是否是三位数,可以在接收数字后,使用if语句判断输入的数字是否在100到999之间,如果不是,则输出提示信息并重新接收输入的数字。具体代码如下:
import java.util.Scanner;
public class geshibai {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i;
do {
System.out.println("请输入三位数");
i = sc.nextInt();
if (i < 100 || i > 999) {
System.out.println("输入的不是三位数,请重新输入");
}
} while (i < 100 || i > 999);
System.out.println("个位是" + i % 10);
System.out.println("十位是" + i / 10 % 10);
System.out.println("百位是" + i / 100);
}
}
用java帮我优化下面代码Scanner input = new Scanner(System.in); System.out.println("请输入学生姓名"); String name = input.next(); int number = 0;//录入的成绩 int sum = 0;// 定义变量sum存储总成绩 for (int i = 1; i <= 5; i++) { System.out.print("请输入第" + i + "门课成绩;"); // 判断输入是否合法 while (true) { Scanner sc = new Scanner(System.in); if (sc.hasNextInt()) { number = sc.nextInt(); if (number > 0) { break; } else { System.out.println("输入有误请重新输入"); } } else { System.out.println("输入有误请重新输入"); } }sum+=number; }double sum_1=sum/5; System.out.println(name+"的平均分是"+sum_1); input.close();
可以考虑以下优化:
1. 将多余的Scanner对象去掉,只使用一个Scanner对象即可。
2. 将输入成绩的代码封装成一个方法,减少代码重复。
3. 将输入的学生姓名和成绩放入一个Map中,方便后续处理。
4. 使用try-with-resources语句自动关闭Scanner对象。
优化后的代码如下:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try (Scanner input = new Scanner(System.in)) {
Map<String, Double> scores = new HashMap<>();
System.out.println("请输入学生姓名");
String name = input.next();
double sum = 0;// 定义变量sum存储总成绩
for (int i = 1; i <= 5; i++) {
int number = inputScore(input, i);// 输入成绩
sum += number;
}
double average = sum / 5;
scores.put(name, average);// 存储成绩
System.out.println(name + "的平均分是" + average);
System.out.println(scores);// 输出成绩
}
}
private static int inputScore(Scanner input, int i) {
int number;
while (true) {
System.out.print("请输入第" + i + "门课成绩:");
if (input.hasNextInt()) {
number = input.nextInt();
if (number > 0) {
break;
} else {
System.out.println("输入有误请重新输入");
}
} else {
System.out.println("输入有误请重新输入");
input.next();// 清除非数字输入
}
}
return number;
}
}
```
阅读全文