2 u013409924 u013409924 于 2016.03.11 14:02 提问

java程序报错,求大神找bug

package arraysofobjects;
import java.util.Scanner;
public class arraysofobjects {

public static void main(String[] args)
{
    Scanner input=new Scanner(System.in);
    students[] stu=new students[4];
    String name;
    int grade;

    for(int i=0;i<stu.length;i++)
    {
        name=input.nextLine();
        grade=input.nextInt();
        stu[i]=new students(name,grade);
    }

    for(int i=0;i<stu.length;i++)
    {
        System.out.printf("name:%s\tgrades:%d\n",stu[i].name(),stu[i].grades());
    }
}

}

package arraysofobjects;

public class students {
private String _name;
private int _grades;

public students(String name,int grades)
{
this._name=name;
this._grades=grades;
}

public String name()
{
return this._name;
}
public int grades()
{
return this._grades;
}
}

输入两行就开始报错了

6个回答

qianxia226
qianxia226   2016.03.11 15:01
已采纳

name=input.nextLine(); 改为 name=input.next();

u013409924
u013409924 谢谢!解决了
接近 2 年之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.11 14:11

把第一行赋值name=nextLine修改成nextString

u013409924
u013409924 不对啊,改了语法就错了。。
接近 2 年之前 回复
wen_wxpk
wen_wxpk   2016.03.11 14:27

把报文贴出来,一下就懂了

u013409924
u013409924 Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:840) at java.util.Scanner.next(Scanner.java:1461) at java.util.Scanner.nextInt(Scanner.java:2091) at java.util.Scanner.nextInt(Scanner.java:2050) at eee.ttt.main(ttt.java:13)
接近 2 年之前 回复
weixin_33998886
weixin_33998886   2016.03.11 14:45

JAVA中对输出到屏幕的语法做了优化
比如,我要输出一个值,我可以写成
int i;
i = 10;
System.out.println("i的值为" + i);
不再使用%d,可以直接将变量写在双引号外面

qq_34253284
qq_34253284   2016.03.11 15:51

输入字符串是掉Scanner的next()

qq553095968
qq553095968   2016.03.11 16:04

你这个输出就是c的输出,java 中不用这么麻烦吧

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!