开发者社区> 问答> 正文

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;
}
}

输入两行就开始报错了

展开
收起
爱吃鱼的程序员 2020-06-23 14:12:59 383 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

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

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

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

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

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

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

    2020-06-23 14:13:15
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载