一个JAVA在JDK1.4中问题(10分)

  • 主题发起人 主题发起人 waikuok
  • 开始时间 开始时间
W

waikuok

Unregistered / Unconfirmed
GUEST, unregistred user!
import java.io.*;
class SwitchDemo
{
public static void main(String args[])
{
char c;
System.out.println("請輸入測試數據: ");
c=(char)System.in.read();
switch(c)
{
case 0:
System.out.println("測試輸入0");
break;
case 1:
System.out.println("測試輸入1");
break;
case 2:
System.out.println("測試輸入2");
break;
case 3:
System.out.println("測試輸入0");
break;
default:
System.out.println("測試輸入字符不在0-3之間");
}
}
}
以上的代码,在编译时提示出现不可捕捉的错误在 c=(char)System.in.read();
这一句,
请问有什么错误?该怎么修改?是什么原因?
 
try{
char c;
System.out.println("請輸入測試數據: ");
c=(char)System.in.read();
switch(c)
{
case 0:
System.out.println("測試輸入0");
break;
case 1:
System.out.println("測試輸入1");
break;
case 2:
System.out.println("測試輸入2");
break;
case 3:
System.out.println("測試輸入0");
break;
default:
System.out.println("測試輸入字符不在0-3之間");
}
}catch (Exception e ){e.printStackTrace();}
要做异常处理
 
另外我估计你程序有逻辑错误
switch()接受的是int
如果你将char传进去的话,会自动转换成ASII值,这样"2"就变成48(没查表,差不多是这个值)
这样你就得不到想要的结果了
 
import java.io.*;
class SwitchDemo
{
public static void main(String args[]) Throws IoException
{
try{
char c;
System.out.println("請輸入測試數據: ");
c=(char)System.in.read();
switch(c)
{
case 0:
System.out.println("測試輸入0");
break;
case 1:
System.out.println("測試輸入1");
break;
case 2:
System.out.println("測試輸入2");
break;
case 3:
System.out.println("測試輸入0");
break;
default:
System.out.println("測試輸入字符不在0-3之間");
}
}catch (Exception e ){e.printStackTrace();}
}
 
接受答案了.
但是我该怎么样才能使它正确的进行选择?
我输入数据,她的确是48.
谢谢
 

Similar threads

后退
顶部