当前位置: 技术问答>java相关
关于do-while 循环
来源: 互联网 发布时间:2015-06-13
本文导语: 编了一个程序,本来想实现输入不同的数,产生不同的操作,并且可以多次输入,但执行结果却是: //---------------------------- 输入为1: 结果为:start 1 无效操作 -35 无效...
编了一个程序,本来想实现输入不同的数,产生不同的操作,并且可以多次输入,但执行结果却是:
//----------------------------
输入为1:
结果为:start
1
无效操作
-35
无效操作
-38
预期结果为:start
1
//------------------------------
请问该怎样改一下原程序?
谢谢!
public static void main (String[] args)
{
try
{
int i=0;
do
{
int ndo=System.in.read();
ndo=ndo-48;
switch (ndo)
{
case 1:System.out.println("start");break;
case 2:;break;
case 3:;break;
case 4:;break;
default:System.out.println("无效操作"+ndo);
}
System.out.println(ndo);
}
while(i==0);
}
catch(IOException e)
{
System.out.println(e.toString());
}
}
//----------------------------
输入为1:
结果为:start
1
无效操作
-35
无效操作
-38
预期结果为:start
1
//------------------------------
请问该怎样改一下原程序?
谢谢!
public static void main (String[] args)
{
try
{
int i=0;
do
{
int ndo=System.in.read();
ndo=ndo-48;
switch (ndo)
{
case 1:System.out.println("start");break;
case 2:;break;
case 3:;break;
case 4:;break;
default:System.out.println("无效操作"+ndo);
}
System.out.println(ndo);
}
while(i==0);
}
catch(IOException e)
{
System.out.println(e.toString());
}
}
|
因为你的i一直为0,所以它继续循环,从屏幕读入数据,而ndo的值已经不是1-5之间了,所以执行default语句。
|
呵呵
你那个break只跳出switch循环了
你那个break只跳出switch循环了
|
可以在do前面加一标号,比如LOOP:
然后改成break LOOP;就可以了
然后改成break LOOP;就可以了
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。