演示结果:
请输入学生人数:
2
请输入课程数目:
2
请输入第1门课程的名字
语文
请输入第2门课程的名字
数学
请输入第1个学生的名字

请输入hszhangzhanzhaz张yuwenyuweyuwy语文成绩
12
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 a518.main(a518.java:25)

解决方案 »

  1.   

    鸟:难道你遇到鬼了吗?
    一看你这个东西我第一反应肯定是你的应用输出了终端的转意字符。
    请问你所使用的什么系统?windows,linux ?又是什么终端?
    就好比在bash里面要输出颜色可以: '\033[41;33;1m abc \033[0m'
    windows 的cmd我不太清楚
    我想汉字编码本身就包含很多数字符号,,,造成终端以为是转意字符编码问题、系统配置问题、终端问题、还有你引用本身,,,都有可能造成这个奇葩结果。
      

  2.   

    at java.util.Scanner.throwFor(Scanner.java:840)
    jdk源码是这样定义的:  5     // If we are at the end of input then NoSuchElement;
      4     // If there is still input left then InputMismatch
      3     private void throwFor() {
      2         skipped = false;
      1         if ((sourceClosed) && (position == buf.limit()))
      0             throw new NoSuchElementException();      
      1         else
      2             throw new InputMismatchException();      
      3     }     
    方法上面的注释我也不太明白什么意思,自己参详吧
      

  3.   

    最好读取字符串的数据 时候 调用Scanner对象 的nextLine();方法 , 我刚刚运行的时候出现连字我都 打不了。
      

  4.   

    我这边也遇到一个原因,print 不换行的字体是黑色 print换行之后是绿色 。但是我遇到一个不换行也是绿色的情况,是一张图片不是代码。还有就是你的 public class a518 能运行?