该Java程序出错出在哪里?为什么?
importjava.util.*;publicclassMessage{publicstaticvoidmain(String[]args){//TODOAuto-ge...
import java.util.*;
public class Message {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("****************************");
System.out.println("* 学生成绩管理系统 *");
System.out.println("============================");
System.out.println("* 1、输入学生成绩 *");
System.out.println("* 2、输入学生成绩 *");
System.out.println("* 0、执行退出程序 *");
System.out.println("*提示:输入数字,选择菜单功能*");
System.out.println("****************************");
Scanner in = new Scanner(System.in);
System.out.println("请输入菜单选项:");
int No=in.nextInt();
System.out.println("请输入学生人数:");
int number=in.nextInt();
String []stu_name = new String [number];
float [][]stu_chengji=new float [number] [3];
if(No==0){
System.out.println("谢谢,再见!");}
else if(No==1){
for(int i = 0; i< number; i++){
System.out.println("请输入下一个同学的成绩,格式:张小强,90,95,89");
System.out.println("姓名 语文 数学 英语");
String messages=in.nextLine();
String stu_items[] = messages.split("[,]");
stu_name[i] = stu_items[0];
for(int j= 0;j<3;j++){
stu_chengji[i][j]=Float.parseFloat(stu_items[j+1]); } }
System.out.println("成绩输入完毕!");
}else if(No==2){
System.out.println("姓名 语文 数学 英语 总成绩 平均成绩");
for (int i = 0;i<number ;i++){
System.out.printf("%c,%7.2f,%7.2f,%7.2f,%7.2f,%7.2f\n",stu_name[i],stu_chengji[i][i],stu_chengji[i][i+1],stu_chengji[i][i+2],(stu_chengji[i][i+0]+stu_chengji[i][i+1]+stu_chengji[i][i+2]),(stu_chengji[i][i+0]+stu_chengji[i][i+1]+stu_chengji[i][i+2])/3);}
System.out.println("成绩输出完毕!");
}else{ System.out.println("请按说明进行操作!谢谢合作!");
} } }
为何又报上面这行错误呢? 展开
public class Message {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("****************************");
System.out.println("* 学生成绩管理系统 *");
System.out.println("============================");
System.out.println("* 1、输入学生成绩 *");
System.out.println("* 2、输入学生成绩 *");
System.out.println("* 0、执行退出程序 *");
System.out.println("*提示:输入数字,选择菜单功能*");
System.out.println("****************************");
Scanner in = new Scanner(System.in);
System.out.println("请输入菜单选项:");
int No=in.nextInt();
System.out.println("请输入学生人数:");
int number=in.nextInt();
String []stu_name = new String [number];
float [][]stu_chengji=new float [number] [3];
if(No==0){
System.out.println("谢谢,再见!");}
else if(No==1){
for(int i = 0; i< number; i++){
System.out.println("请输入下一个同学的成绩,格式:张小强,90,95,89");
System.out.println("姓名 语文 数学 英语");
String messages=in.nextLine();
String stu_items[] = messages.split("[,]");
stu_name[i] = stu_items[0];
for(int j= 0;j<3;j++){
stu_chengji[i][j]=Float.parseFloat(stu_items[j+1]); } }
System.out.println("成绩输入完毕!");
}else if(No==2){
System.out.println("姓名 语文 数学 英语 总成绩 平均成绩");
for (int i = 0;i<number ;i++){
System.out.printf("%c,%7.2f,%7.2f,%7.2f,%7.2f,%7.2f\n",stu_name[i],stu_chengji[i][i],stu_chengji[i][i+1],stu_chengji[i][i+2],(stu_chengji[i][i+0]+stu_chengji[i][i+1]+stu_chengji[i][i+2]),(stu_chengji[i][i+0]+stu_chengji[i][i+1]+stu_chengji[i][i+2])/3);}
System.out.println("成绩输出完毕!");
}else{ System.out.println("请按说明进行操作!谢谢合作!");
} } }
为何又报上面这行错误呢? 展开
2014-03-21
展开全部
next() 从一行中扫描,直到碰到特定的标识符:空格或是换行符(\n),获取其前的字符(串)。
它没有处理回车所带来的"\n",与nextLine()方法连用的话,nextLine()看见“\n”就收了,然后扫描了 \n 之前的内容,也就是空字符串,于是出现问题了。把nextLine()换成next();.或者在循环中使用nextLine(),直到nextLine()接受的内容不是"\n"
它没有处理回车所带来的"\n",与nextLine()方法连用的话,nextLine()看见“\n”就收了,然后扫描了 \n 之前的内容,也就是空字符串,于是出现问题了。把nextLine()换成next();.或者在循环中使用nextLine(),直到nextLine()接受的内容不是"\n"
展开全部
int number = in.nextInt();
in.nextLine();
String[] stu_name = new String[number];
因为有回车,所以加入上面第二行。以下是测试结果:
****************************
* 学生成绩管理系统 *
============================
* 1、输入学生成绩 *
* 2、输入学生成绩 *
* 0、执行退出程序 *
*提示:输入数字,选择菜单功能*
****************************
请输入菜单选项:
1
请输入学生人数:
1
请输入下一个同学的成绩,格式:张小强,90,95,89
姓名 语文 数学 英语
a,1,1,1
成绩输入完毕!
请关注www.highersoft.net
in.nextLine();
String[] stu_name = new String[number];
因为有回车,所以加入上面第二行。以下是测试结果:
****************************
* 学生成绩管理系统 *
============================
* 1、输入学生成绩 *
* 2、输入学生成绩 *
* 0、执行退出程序 *
*提示:输入数字,选择菜单功能*
****************************
请输入菜单选项:
1
请输入学生人数:
1
请输入下一个同学的成绩,格式:张小强,90,95,89
姓名 语文 数学 英语
a,1,1,1
成绩输入完毕!
请关注www.highersoft.net
更多追问追答
追问
还是不行呢,你这不是 让从键盘上敲入两户数字吗?
追答
请注意输入法的中/英符号,我发现你的代码逗号有中文的.数字也会分中英文
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String messages=in.nextLine();这里,这个方法不等你输入,直接得到"".
用String messages = in.next();试试
用String messages = in.next();试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String messages=in.nextLine();这句没有等待收入
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
stu_chengji[i][j]=Float.parseFloat(stu_items[j+1]); } }
这里应该不用加1的
这里应该不用加1的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询