import java.io.*;public class Average2{
public static void main(String args[])throws IOException
{
double average;
int counter,grade,total;
total=0;
counter=0;
System.out.println("Enter letter grade,Z to end:");
System.out.flush();
grade=System.in.read();
while(grade!='Z'){
if(grade=='A')
total=total+4;
else if(grade=='B')
total=total+3;
else if(grade=='C')
total=total+2;
else if(grade=='D')
total=total+1;
else if(grade=='F')
total=total+0;
System.in.skip(1);
counter=counter+1;
System.out.println("Enter letter grade,Z to end:");
System.out.flush();
grade=System.in.read();
}
if(counter!=0){
average=(double)total/counter;
System.out.println("Class average is"+average);
}
else
System.out.println("No grade were enterd");
}
}这个是我照书上打的,没有错误,可书上显示的是输入一个字母后按回车接着输入下一个,可我运行的时候只要一按回车就出错了,只能一个接一个的输完用“,”分开,最后按回车输出结果
public static void main(String args[])throws IOException
{
double average;
int counter,grade,total;
total=0;
counter=0;
System.out.println("Enter letter grade,Z to end:");
System.out.flush();
grade=System.in.read();
while(grade!='Z'){
if(grade=='A')
total=total+4;
else if(grade=='B')
total=total+3;
else if(grade=='C')
total=total+2;
else if(grade=='D')
total=total+1;
else if(grade=='F')
total=total+0;
System.in.skip(1);
counter=counter+1;
System.out.println("Enter letter grade,Z to end:");
System.out.flush();
grade=System.in.read();
}
if(counter!=0){
average=(double)total/counter;
System.out.println("Class average is"+average);
}
else
System.out.println("No grade were enterd");
}
}这个是我照书上打的,没有错误,可书上显示的是输入一个字母后按回车接着输入下一个,可我运行的时候只要一按回车就出错了,只能一个接一个的输完用“,”分开,最后按回车输出结果
错误出在System.in.skip(1);不知道你这句话想做什么.
先把它comment掉.至少你知道它能正常运行..
A
Enter letter grade,Z to end:
Exception in thread "main" java.io.IOException: 句柄无效。
at java.io.FileInputStream.skip(Native Method)
at java.io.BufferedInputStream.skip(BufferedInputStream.java:344)
at Average2.main(Average2.java:24)
Press any key to continue...
不好意思,因为我觉得大家会把程序复制过去自己验证一下所就就没把错误粘贴过来
Enter letter grade,Z to end:
A
Enter letter grade,Z to end:
Exception in thread "main" java.io.IOException: 句柄无效。
at java.io.FileInputStream.skip(Native Method)
at java.io.BufferedInputStream.skip(BufferedInputStream.java:344)
at Average2.main(Average2.java:24)
Press any key to continue...上面第一个是输入后直接按回车的结果,没法进一步执行了
第2个是先把字母输入后的
A,B,A,A,A,A,B,B,B,C,C,C,C,A,A,A,Z
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Enter letter grade,Z to end:
Class average is3.25
Press any key to continue...
这个是JAVA how to program上的
还是最前面的呢,在人家看来刚学java都能看这个了,真是搞死我了
在工具里面运行就不会有问题.单独在命令提示行中运行就会有错误,
另外,IO输入流中的skip方法在读文件输入流时有用过.