class Demo
{
public static void main(String[] args) throws Exception
{
int a=0;
w:while(true){
for(int i=0; i <3; i++){
int ch=System.in.read();
if(ch== 'x ')
continue w;
else if(ch== 'y ')
break w;
else
System.out.print((char)ch+ " "+(++a));
}
System.out.println( "> ");
}
System.out.println();
}
}
在DOS命令行中输入abcde
结果是
abcde
a1b2c3>
6> e5
7
d为什么没有输入呢?
如果出入abcdef
abcdef
a1b2c3>
d4e5f6>
7
8
哪位达人可以解释一下这个程序读取时的运行流程?
先谢过!
------解决方案--------------------
我晕倒,想了办天没搞明白那W:是啥```看到后面continue w;才知道是跳转```
不要用跳转啊,我打从学开始就没用过,虽然我也不是什么高手```
------解决方案--------------------
其实就是输出的时候把 "回车 "ch=13, "换行 "ch=10输出了。然后把行首的字符给弄乱了。
你可以把print换成println试试。你会发现其实输出d4了。我加了一个判断,当遇到13,10时不输出
class Demo{
public static void main(String[] args) throws Exception{
int a=0;
w:while(true){
for(int i=0; i <3; i++){
int ch=System.in.read();
if(ch== 'x ')
continue w;
else
if(ch== 'y ')
break w;
else{
if((ch!=13)&&(ch!=10))
System.out.println((char)ch+ " "+(++a));
}
}
System.out.println( "> ");
}
System.out.println();
}
}