Tag: switch语句

怀疑在C中使用switch语句

我有一个疑问:为什么我在i=3 和 i=7时得到输出? main() { int i; scanf(“%d”,&i); switch(i) { case 3: printf(“message3”); default: if(i==4) printf(“message4”); case 2:printf(“message2”); break; case 1:printf(“Message1”); } }

如何在c的case语句中使用省略号?

CASE expr_no_commas ELLIPSIS expr_no_commas ‘:’ 我在c的语法规则中看到了这样的规则,但是当我尝试重现它时: int test(float i) { switch(i) { case 1.3: printf(“hi”); } } 它失败…

关于C中的switch {}案例?

我正在用C language阅读一些文本。 文中说switch{} case只能接受整数类型。 我只是好奇为什么switch{} case不接受其他类型,如float或string。 这背后有什么理由吗? 非常感谢。

switch语句如何工作?

如何处理在switch-case块中标记语句的任何case之前的语句。 请解释以下程序的行为 PROG1: #include int main() { switch(1) { int i=0; case 1:printf(“%d”,i); } getchar(); return 0; } 输出:垃圾值。 PROG2: #include int main() { switch(1) { printf(“Inside Switch”); case 1:printf(“Case 1\n”); } printf(“Outside Switch”); getchar(); return 0; } 输出: 情况1 外部交换机。 根据程序2,在案例标记语句之前的语句似乎无法访问但是为什么i在第一个程序中没有得到未声明变量i的错误(仅警告)。 如果有人能够详细解释如何在内部处理switch语句,那将会非常有用。

使用switch语句将两位数字转换为单词

问题是写一个程序要求用户输入2位数字,然后打印出英文单词。 假设你输入’41’,printf函数打印出’四十一’。 我几乎完成了程序,但坚持将11-19位数转换为相应的单词。 我使用一个switch语句来打印第一个数字和第二个switch语句来打印第二个数字。 看看代码: #include int main(void) { int first_digit, second_digit; printf(“Enter two digits: “); scanf(“%1d%1d”,&first_digit,&second_digit); switch(first_digit % 10) { case 1: printf(“ten”); break; case 2: printf(“twenty”); break; case 3: printf(“thirty”); break; case 4: printf(“forty”); break; case 5: printf(“fifty”); break; case 6: printf(“sixty”); break; case 7: printf(“seventy”); break; case 8: printf(“eighty”); break; case 9: […]

如何在C中的switch case语句中使用范围?

我的逻辑是: if number is between 1 to 10, execute first case statement if number is from 20 to 30, execute second case statement 有没有下面的解决方案? case ‘1’ … ’10’: case ’20’ … ’30’:

如果我不在开关盒中写默认怎么办?

int a = 10; switch(a){ case 0: printf(“case 0”); break; case 1: printf(“case 1”); break; } 以上代码有效吗? 如果我确定int a没有除1和0之外的任何其他值,我可以避免default吗? 如果在任何情况下一个值与1和0不同怎么办? 我知道这是一个愚蠢的问题,但我在想,也许这将是非法的或未定义的行为,所以我只是要求确认。

在switch语句中第一个’case’之前的代码

在C中,可以在第一个case标签之前编写代码。 有没有这样做的情况,或者它只是一个“死代码块”? 例如: switch (…) { { int a = 0x2a; printf(“%d\n”, a); } case 0: … }

switch语句中的变量定义

在下面的代码中,为什么变量i没有赋值1 ? #include int main(void) { int val = 0; switch (val) { int i = 1; //i is defined here case 0: printf(“value: %d\n”, i); break; default: printf(“value: %d\n”, i); break; } return 0; } 当我编译时,我得到一个警告, i尽管int i = 1; i仍未被初始化int i = 1; 这清楚地初始化了它 $ gcc -Wall test.c warning: ‘i’ is used uninitialized […]