if语句
表达式
if(表达式) { 语句; }
若表达式为真(非零),则执行语句
if(表达式) { 语句1; } else { 语句2; }
若表达式为真(非零)执行语句1,否则执行语句2
if(表达式1) { 语句1; } else if(表达式2) { 语句2; } else { 语句3; }
else总是与离它最近的if配对
题目:判断一个数是否为奇数
#include<stdio.h> int main() { int i =0; scanf("%d\n",&i); if(i%2==0) { printf("i为偶数"); } else { printf("i为奇数"); } return 0; }
switch语句
表达式
switch语句
常用于多分支语句
switch(整型表达式) { 语句项; }
语句项的解释:
case 整型常量:
语句;
break;
case决定入口,break决定出口,break用于跳出switch语句。
#include<stdio.h> int main() { int color = 0; scanf("%d\n",&color); switch(color) { case 1: printf("黄种人"); break; case 2: printf("白种人"); break; case 3; printf("黑种人"); break; default: printf("输入错误"); } return 0; }
当输入的数字超过规定范围时,此时default作为出口,输出错误。
最好每个switch语句中都放入default
#include<stdio.h> int main() { int v1 = 0; int v2 = 0; char ch = ""; while ((ch = getchar()) != '#') { switch (ch) { defualt: v1++; case 'a': case 'h': case 'o': v2++; } } printf("%d %d", v1, v2); return 0; }
#include<stdio.h> int main() { int v1 = 0; int v2 = 0; char ch = ""; while ((ch = getchar()) != '#') { switch (ch) { case 'a': case 'h': case 'o': v2++; defualt: v1++; } } printf("%d %d", v1, v2); return 0;
程序不会回去执行default,而且从匹配的位置一直往下执行而已,直到遇见break