关于Scanner输入的问题
有三个问题,问题描述比较长,烦请老师解惑
1,在练习中,如果直接使用
Scanner sc=new Scanner(System.in); var=sc.nextInt();
语句来获取输入的话,会报如下错误
请问老师这种报错是什么原因呢?
2,在eclipse中使用如上输入语句,会被建议修改为
private static Scanner sc; public static void main(String[] args){ //其他语句 sc=new Scanner(System.in); var=sc.nextInt(); //其他语句 }
请问为什么会这样?以及private关键字起的作用?
3,请问只用一次循环是不是本次练习的最优解呢?
附上本次练习代码:
import java.util.Scanner; public class ScoreDemo{ private static Scanner sc; public static void main(String[] args){ int[][] arr; int cnSum=0; int mathSum=0; arr = new int[3][2]; for(int i=0;i<arr.length;i++) { sc=new Scanner(System.in); System.out.println("请输入第"+(i+1)+"个学生的语文成绩"); arr[i][0]=sc.nextInt(); cnSum+=arr[i][0]; System.out.println("请输入第"+(i+1)+"个学生的数学成绩"); arr[i][1]=sc.nextInt(); mathSum+=arr[i][1]; } System.out.println("语文总成绩为:"+cnSum); System.out.println("语文平均成绩为:"+(cnSum/arr.length)); System.out.println("数学总成绩为:"+mathSum); System.out.println("数学平均成绩为:"+(mathSum/arr.length)); } }
20
收起
正在回答
1回答
1、关于在线编辑器的问题,你再试试,我这边试了一下,第一遍提交出了问题,后来可以用了,你再试试
2、第二个问题,这么修改是把Scanner sc定义成了类变量,这样整个类中的方法就都可以使用了。private是私有的意思,用它修饰就只能在这个类中使用,在面向对象部分会详细介绍。
3、只用一次循环确实是效率最高的。建议把sc=new Scanner(System.in);放到循环的外面,避免执行一次就创建一个对象。
祝学习愉快!
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星