为什么打印不出想要的结果
这个程序是在键盘上输入数字,然后会显示输入数字的值,但是为什么运行的时候不报错,但是却没有显示结果~~
import java.util.*;
import java.io.*;
public class TextVector {
public static void main(String[] args) {
// TODO Auto-generated method stub
int s =0;
Vector v = new Vector();
System.out.println( "please enter number ");
while(true)
{ 5String b ;
try{
BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
b= in.readLine();
s = Integer.parseInt(b);
} catch(IOException e)
{
e.printStackTrace() ;
}
if(s== '\r ' || s== '\n ')
break ;
else
{
int num = s- '0 ' ;
v.addElement(new Integer(num));
}
}
int sum = 0 ;
Enumeration e = v.elements();
while(e.hasMoreElements())
{
Integer intObj = (Integer)e.nextElement(); //还回指示器正在指示的对象~,
sum +=intObj.intValue(); //取出对象里面所包含的整数对象
}
System.out.println(sum);
}
}
[解决办法]
1)--> if(s== '\r ' || s== '\n ') readLine之后不会再有这种东西了的,已经被自动截掉了的
2) int num = s- '0 ' ;parse过之后已经是真实的数值了
[解决办法]
import java.util.*;
import java.io.*;
public class TextVector {
public static void main(String[] args) {
int s =0;
Vector <Integer> v = new Vector <Integer> (); //泛型,指明要存入的是Integer
System.out.println( "please enter number ");
while(true){
String b=null;
try{
BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
b= in.readLine();
if(b.length()==0){ //我偷了个懒,只要没输入就退出。你可以自己改改
break ;
}else{
try{ //如果用户输入了非数值型数据,也退出
s = Integer.parseInt(b);
v.addElement(new Integer(s));
}
catch(NumberFormatException ee){
break;
}
}
}
catch(IOException e){
e.printStackTrace() ;
}
}
//下面的基本没变
int sum = 0 ;
Enumeration e = v.elements();
while(e.hasMoreElements()){
Integer intObj = (Integer)e.nextElement();
sum +=intObj.intValue();
}
System.out.println(sum);
}
}
