超级菜鸟的超级菜问题没人回答吗?

yztlg 2004-12-24 05:14:50
在Eclipse下我这个初学者编了如下代码:
public class Int {

public static void main(String[] args)throws java.io.IOException{
char a;
do
{ System.out.println(" ***********************************");
System.out.println(" ** **");
System.out.println(" ** 猜数字游戏 **"); System.out.println (" ***********************************");
System.out.println(" 1.游戏开始");
System.out.println(" 2.载入进度");
System.out.println(" 3.开发人员");
System.out.println(" 4.游戏帮助");
System.out.println(" 5.退出游戏");
System.out.print("请选择:");
a=(char)(System.in.read());

}while(a<'1'||a>'5');

switch(a){

case '1': //请问我在case '1'中输入的代码哪不对?
int b;
System.out.print("请输入一个数(1<||<10):");
b=(int)(System.in.read());//我编译后这段代码根本没有运行,应该提示我是 输入一个数(b)的啊,为什么 程序直接就运行完毕了呢?
if(b==4)
System.out.print("hahaha");
else
System.out.print("haha");
break;

}
菜鸟有菜鸟的快乐,希望大家不要剥夺我的快乐好吗??

...全文
173 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
kevinmartin 2005-01-06
  • 打赏
  • 举报
回复
谢谢蓝灵,虽然我还不太明白为什么要在前面加两个System.in.read();
但是问题确实解决了,等我把整个游戏完善了再发上来,到时请你多指教!


哎,我前面不就叫你这么做了嘛。
非得要代码写给你才行吗?
asdmonster 2004-12-27
  • 打赏
  • 举报
回复
mark
yztlg 2004-12-27
  • 打赏
  • 举报
回复
谢谢蓝灵,虽然我还不太明白为什么要在前面加两个System.in.read();
但是问题确实解决了,等我把整个游戏完善了再发上来,到时请你多指教!
yztlg 2004-12-24
  • 打赏
  • 举报
回复
那我改一下声明可以吗?
char b;
b=(char)(System.in.read());
if(b=='4');
这样行吗?
qxbnit 2004-12-24
  • 打赏
  • 举报
回复
case '1': //请问我在case '1'中输入的代码哪不对?
int b;


System.in.read();
System.in.read();//加两个,因为回车占两个字符,-----反对的,联系我4469428*~!


System.out.print("请输入一个数(1<||<10):");


b=(int)(System.in.read());//我不知道,怎么办才能做到让他的int做到等于4
//(char)‘4’=(int)52
//同样,-----反对的,联系我4469428*~!
qxbnit 2004-12-24
  • 打赏
  • 举报
回复
1给a
回车给b=(int)(System.in.read());//我编译后这段代码根本没有运行,应该提示我是 输入一个数(b)的啊,为什么 程序直接就运行完毕了呢?

因为不可能是b==4 //回车是多少?
打印的当然是“haha”了

//---------//我不是高手!声明~!
yztlg 2004-12-24
  • 打赏
  • 举报
回复
在case :中不允许使用System.in.read()语句吗?
yztlg 2004-12-24
  • 打赏
  • 举报
回复
楼上的大哥,好象还是不行呢~~
yztlg 2004-12-24
  • 打赏
  • 举报
回复
那switch里面呢?不需要改动什么么?
kevinmartin 2004-12-24
  • 打赏
  • 举报
回复
我刚开始学java,不过以前用c的时候经常碰到这个问题,想来可能也是这个问题,就试试看了。

public class Int {

public static void main(String[] args)throws java.io.IOException{
char a;
do
{ System.out.println(" ***********************************");
System.out.println(" ** **");
System.out.println(" ** 猜数字游戏 **"); System.out.println (" ***********************************");
System.out.println(" 1.游戏开始");
System.out.println(" 2.载入进度");
System.out.println(" 3.开发人员");
System.out.println(" 4.游戏帮助");
System.out.println(" 5.退出游戏");
System.out.print("请选择:");
a=(char)(System.in.read());

}while(a<'1'||a>'5');

switch(a){

case '1': //请问我在case '1'中输入的代码哪不对?
int b;


System.in.read();


System.out.print("请输入一个数(1<||<10):");
b=(int)(System.in.read());//我编译后这段代码根本没有运行,应该提示我是 输入一个数(b)的啊,为什么 程序直接就运行完毕了呢?
if(b==4)
System.out.print("hahaha");
else
System.out.print("haha");
break;

}
VickyLan 2004-12-24
  • 打赏
  • 举报
回复
有一个方法,在switch语句前加上两句System.in.read(),将输入的第二和第三个字符接收,当只输入了一个字符的时候,第二个字符和第三个字符就是回车,但是如果输入不止一个字符,又会出问题,建议不要用这种方法接收
yztlg 2004-12-24
  • 打赏
  • 举报
回复
请问加在哪啊?麻烦你,请把那部分写一下好吗?我光听你说可能没办法搞好.
kevinmartin 2004-12-24
  • 打赏
  • 举报
回复
好像是读了回车了吧,你试试看增加一个read()
xiaofeng3385 2004-12-24
  • 打赏
  • 举报
回复
...
phoenix123 2004-12-24
  • 打赏
  • 举报
回复
过节呢,高兴点
zbhfyl 2004-12-24
  • 打赏
  • 举报
回复
为什么把自己说的那么可怜,所以大家不回答
zcjl 2004-12-24
  • 打赏
  • 举报
回复
今天都赶着过节去了,^_^
yztlg 2004-12-24
  • 打赏
  • 举报
回复
晕,版面没搞好,对不起。但是大家都是高手,应该能看懂我的意思吧

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧