我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 大家来看哈这个程序嘛 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

陪你等待奇迹



性别: 保密 状态: 该用户目前不在线
头衔: Optimist的马甲
等级: 栋梁之材
家族: 詹詹自喜★平平安安
发贴: 933
威望: 0
浮云: 1105
在线等级:
注册时间: 2006-09-10
最后登陆: 2007-07-30

5come5帮你背单词 [ theme /θi:m/ n. 话题,主题 ]


大家来看哈这个程序嘛

import java.io.*;
public class ChoiDemo
{
public static void main(String args[])throws IOException
{
while(true)
{
char c;
System.out.print("Please input a character:");
c=(char)System.in.read();
if(Character.isUpperCase(c))
System.out.println("This is a UpperCase Character!");
if(Character.isLowerCase(c))
System.out.println("This is a LowerCase Character! ");
System.out.println();
}
}
}
死循环的,但是奇怪的是怎么会出现三个
"Please input a character"呢
顶端 Posted: 2006-10-27 22:04 | [楼 主]
iailum



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 839
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-04-08
最后登陆: 2009-08-10

5come5帮你背单词 [ courage /'kΛrid3ə/ vi. 息要,赠券 ]


不认为是强制转换的问题.
顶端 Posted: 2006-10-27 22:46 | [1 楼]
iailum



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 839
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-04-08
最后登陆: 2009-08-10

5come5帮你背单词 [ almost /'o:lməust/ ad. 几乎,差不多 ]


原来是这样啊,我就说我怎么没想通,原来JAVAC里的回车是两个字节....我用C模拟出来只重复2次,想了半天,JAVA没学过.
顶端 Posted: 2006-10-27 23:03 | [2 楼]
iailum



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 839
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-04-08
最后登陆: 2009-08-10

5come5帮你背单词 [ hearty /'ha:ti/ ad. 诚恳的,衷心的,亲切的 ]


c=(char)System.in.read();
按字节读入,你输入d,加回车是3字节,一共循环到第4次,出现3个.
顶端 Posted: 2006-10-27 23:12 | [3 楼]
iailum



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 839
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-04-08
最后登陆: 2009-08-10

5come5帮你背单词 [ burden /'bə:dn/ n. 负担,负重,负荷,载重,义务,责任 ]


没有循环的时候,在你这样的程序中,回车不会被读入,因为只运行一次读入一个字节,当然就不用考虑那么细致,但问题还是潜在的,只是没有让它表现出来.
顶端 Posted: 2006-10-27 23:16 | [4 楼]
iailum



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 839
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-04-08
最后登陆: 2009-08-10

5come5帮你背单词 [ list /list/ n. 目录,名单,表;v. 列举,排列 ]


Quote:
引用第18楼piaoliu于2006-10-27 23:14发表的:

因为输入的数据是从一个输入缓冲区里读出来的
不管你从屏幕上输入的是什么内容,回车以后都会被放入缓冲区(即有缓冲的输入)
对应的就是无缓冲输入你按下的健(ms是keyup)以后内容就传入了你的函数,是以键为单位的(在c里有getch(),getche(),分别是有回显的和没有回显的)
在有缓冲输入情况下,输入流就是缓冲里按照你要取的字节数读取数据(char就读一个字节,int基本就读两个而且会自动匹配和转化成数值类型)然后把流的读入指针后移相应的字节,在下次in.read()的时候如果流的读入指针没有到末尾就继续读入数据而不会停下来等待用户输入…………
.......


还是蝈蝈强啊,我的理解没有这么深刻,呵呵.
顶端 Posted: 2006-10-27 23:27 | [5 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.015276(s) query 6, Time now is:10-03 15:01, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号