Java里面的while循环输出对应的星期问题?代码如下;

importjava.util.*;publicclassDate{/***题目如下:**从键盘输入一位整数,当输入1-7位时,显示下面对应的英文星期名称的缩写。*输入其... import java.util.*;
public class Date {

/**
* 题目如下:
*
*从键盘输入一位整数,当输入1-7位时,显示下面对应的英文星期名称的缩写。
*输入其他数字时提示用户重新输入,输入数字0时程序结束。
*
*例如:
*
*请输入数字1-7(输入0结束):1
*星期一
*请输入数字1-7(输入0结束):2
*星期二
*......
*请输入数字1-7(输入0结束):0
*程序结束
*
*/

/*下面是个死循环了*/
public static void main(String[] args) {
// TODO 自动生成方法存根
int num;
String day = "";
Scanner input = new Scanner(System.in);
System.out.print("请输入数字1-3(输入0结束):");
num = input.nextInt();
do{
switch (num) {
case 1:
day = "星期一";
System.out.println("今天是:" + day);
continue;
case 2:
day = "星期二";
System.out.println("今天是:" + day);
continue;
case 3:
day = "星期三";
System.out.println("今天是:" + day);
continue;

default:
System.out.print("请重新输入:");
num = input.nextInt();
continue;
}

}while(num != 0);

System.out.println("程序结束");
}

}
展开
 我来答
阿基米糊
2011-04-30 · 喜欢阅读,喜欢随笔,喜欢分享
阿基米糊
采纳数:52 获赞数:208

向TA提问 私信TA
展开全部
import java.util.*;
public class Test {
public static void main(String[] args) {
// TODO 自动生成方法存根
int num;
String day = "";
Scanner input = new Scanner(System.in);

do{
System.out.print("请输入数字1-3(输入0结束):");
num = input.nextInt();
switch (num) {
case 1:
day = "星期一";
System.out.println("今天是:" + day);
continue;
case 2:
day = "星期二";
System.out.println("今天是:" + day);
continue;
case 3:
day = "星期三";
System.out.println("今天是:" + day);
continue;
case 0:
break;
default:
System.out.print("请重新输入:");
num = input.nextInt();
continue;
}
}while(num != 0);
System.out.println("程序结束");
}
}
温安时
2011-04-29 · TA获得超过118个赞
知道答主
回答量:89
采纳率:0%
帮助的人:33万
展开全部
public static void main(String[] args) {
// TODO 自动生成方法存根
int num;
String day = "";
Scanner input = new Scanner(System.in);

do{
System.out.print("请输入数字1-3(输入0结束):");
num = input.nextInt();
switch (num) {
case 1:
day = "星期一";
System.out.println("今天是:" + day);
break;
case 2:
day = "星期二";
System.out.println("今天是:" + day);
break;
case 3:
day = "星期三";
System.out.println("今天是:" + day);
break;

default:
System.out.print("请重新输入:");
num = input.nextInt();
break;
}

}while(num != 0);

System.out.println("程序结束");
}
问题在于你在while外面赋值之后,没在循环里面赋值,所以一直是一个数反复循环,造成死循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yueyingcs
2011-04-28 · TA获得超过206个赞
知道小有建树答主
回答量:108
采纳率:0%
帮助的人:72.9万
展开全部
public static void main(String[] args) {
int num;
String day = "";
Scanner input = new Scanner(System.in);

do{
System.out.print("请输入数字1-3(输入0结束):");
num = input.nextInt();

switch (num) {
case 1:
day = "星期一";
System.out.println("今天是:" + day);
break;
case 2:
day = "星期二";
System.out.println("今天是:" + day);
break;
case 3:
day = "星期三";
System.out.println("今天是:" + day);
break;
case 0:
break;
default:
System.out.print("请重新输入:");
num = input.nextInt();
break;
}

}while(num != 0);

System.out.println("程序结束");

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JesChou
2011-04-28 · TA获得超过1431个赞
知道小有建树答主
回答量:284
采纳率:0%
帮助的人:377万
展开全部
你不是要显示英文缩写吗?我也没见缩写在哪里,就看见中文了.....

你不是要1-7吗?怎么又写成1-3了?.....

你先用一个数组保存String [] weekNames={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};

不用switch-case语句

while(true){
if(num>=1&&num<=7)
System.out.println(weekNames[num-1]);
else if(num>7||num<0)
System.out.println("重新输入..");
else //num==0
break;
}
追问
可以不可以不用数组,就用whil循环?
追答
当然可以,但是你不觉得很烦人吗

你得为1-7写7个语句,重复且相似

我给你写的方法是最佳的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c131291
2011-04-28 · TA获得超过211个赞
知道小有建树答主
回答量:258
采纳率:0%
帮助的人:142万
展开全部
case X:
day = "XXX";
System.out.println("今天是:" + day);
continue;
continue改为break~~
追问
放到哪个外面?那循环还如何进行?
追答
其实你那个按2楼所说,把do放到system.out.print("请输入数字1-3(输入0结束):");前面
然后在case语句加个case 0:break;
就可以了
不需要改动太多的...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式