public class HelloWorld {
public static void main(String[] args) {
char today='日';
switch(today){
// case '一':
// case '二':
// case '三':
// System.out.println("吃包子");
case '二':
case '四':
case '六':
System.out.println("吃油条");
case '日':
System.out.println("吃主席套餐");
}
/************************************************************************************************/
public class HelloWorld {
public static void main(String[] args) {
char today='日';
switch(today){
case '一':
case '二':
case '三':
System.out.println("吃包子");
// case '二':
// case '四':
// case '六':
// System.out.println("吃油条");
case '日':
System.out.println("吃主席套餐");
}
/**********************************************************************************************/
public class HelloWorld {
public static void main(String[] args) {
char today='日';
switch(today){
case '一':
case '二':
case '三':
System.out.println("吃包子");
case '二':
case '四':
case '六':
System.out.println("吃油条");
case '日':
System.out.println("吃主席套餐");
}
你这个代码问题应该是有不少的:
一个汉字不是一个字符,所以你用char today='日'应该好似有问题的。为什么不考虑用数字呢?int today='0'(西方国家一周的第一天是周日所以我用0表示第一天,这和计算机里的思维一致,比如数组的小表都是从0开始的)或者你也可以int today='7' 这都无所谓;
switch()语句语法有问题。建议你用switch()语句之前先思考一下如果单纯嵌套if()语句,即 iif() elseif() .....else()该如何实现。因为switch()语句本身就是一个条件嵌套语句。这么一比较你就知道了,在每一行case: 语句1后面都应该加上break;不然这个case() 语句之行完了后仍然要继续执行下面所有的case()语句进行条件匹配(联想一下if()elseif()..else()语句是不是不会这样?)所以代码应该是:
int today=0;
switch(today)
{case(1):
case(3);
case(5):System.out.println("今天吃包子");break;
/*多行条件匹配要将多个case语句都罗列出来并且在做后一行写上条件满足执行的语句,最后,break 语句是不能少。*/
case(2):
case(4):
case(6):System.out.println("今天吃油条");break;
case(0):System.out.println("今天吃主席套餐");break;/*最后一行case语句可以不写break,因为条件匹配到最后一行,无路能否匹配程序都得跳出循环匹配了)*/
/* 从上面一句说的逻辑里,你也看得出来有不合理的地方——如果所有条件(case())都没有匹配成功程序该怎么办呢?你没有告诉程序,所以这是不合理的。但是if()..elseif()..else()语句没有这个问题你想明白了吗?所以正确的switch()语句的语法是将最后一个匹配条件改成default: ... .
这个例子的话就应该写成default():System.out.println("今天吃主席套餐");*/
最后一个小建议:计算机(编程语言)说到底是舶来品,外国人发明的。在计算机世界里,除了字符串,建议不要使用汉字,你用汉语拼音都比汉字要好——很容易出现编码问题。关于汉字编码和英文字母的编码问题,你也应该了解一下,这是不一样的——汉字那么复杂,哪像a,b,c,d这么简单用一个字节就能编码出来呢?。
case的值有重复
因为"吃包子"应该是 一三五,你写成 一二三 了,这样会跟下面的二重复。另外,建议你每个case输出之后加break;
case '一':
case '三':
case '五':
System.out.println("吃包子");