您的位置:程序门 -> java -> j2se / 基础类



关于这个程序,大家来看看


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于这个程序,大家来看看[已结贴,结贴人:lkof550]
发表于:2007-10-24 11:02:51 楼主
import   java.util.*;  
public   class   testvector  
{  
public   static   void   main   (string   []   args)  
{  
int   b=0;  
vector   v=new   vector();  
system.out.println("please   enter   number:");  
while(true)  
{  
try  
{  
b=system.in.read();  
}  
catch(exception   e)  
{  
system.out.println(e.getmessage());  
}  
if(b==   '\r   '   |   |b==   '\n   ')//这句代码的作用是什么?  
break;  
else  
{  
int   num=b-   '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);  
}  
}
问题就在后面的注释地方.不怎么懂.哪个来告诉我啊

发表于:2007-10-24 11:07:321楼 得分:10

if(b==     '\r     '   |   |b==     '\n     ')//这句代码的作用是什么?    
用户输入了一个换行或者回车键

int   num=b-     '0     ';//这句代码的作用是什么?    
如果用户输入一个数字比如9   那么当时b的值为'9'为了取得数字9   减去作为基准值的'0'
那么结果num就是我们想得到的数字9
发表于:2007-10-24 11:09:242楼 得分:10
if(b=='\r'   ¦ ¦   b=='\n')
碰到回车符时就结束掉循环。

int   num   =   b   -   '0',将字符转换成数字。比如输入   '9'   得出的   num   就是   9。
因为   '0'   的   ascii   值为   48,'9'   的   ascii   值为   57,内部是按照   int   num   =   57   -   48   来计算的。
发表于:2007-10-24 11:15:063楼 得分:20
b=system.in.read();     返回了一个int型的数据,也就是输入字符的ascii码。
1,同上
2,这里的‘0'是一个字符,也就是char类型,char在java中也就代表ascii码的显示,‘0'ascii为48,这样就是b的ascii-48,得到了一个数值
发表于:2007-10-24 11:16:204楼 得分:10
if(b==     '\r     '   |   |b==     '\n     ')这是说如果输入了换行或回车时就break;

int   num=b-     '0     ';   是因为b是system.in.read();   进来的,这个读进来的是字符,需要进行转换,而b是int型,所以在system.in.read();   读进来时会把读进来的以ascii码的形式存储,而int   num=b-'0'是先把b换成字符型,这样就是原来输入的数,接着会再把b强制转换成int型.
发表于:2007-10-24 12:01:535楼 得分:0
吓死人了,回贴时没人回,回完一刷新,都四个人了.


快速检索

最新资讯
热门点击