单分支
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("未成年!\n");
}
return 0;
}
多分支
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("未成年!\n");
}
else
{
printf("成年人!\n");
}
}
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("未成年!\n");
}
else if ((age >= 18) && (age < 30))
{
printf("青年!\n");
}
else if ((age >= 30) && (age < 50))
{
printf("中年!\n");
}
else if ((age >= 50) && age < 50)
{
printf("老年!\n");
}
else
{
printf("老寿星!\n");
}
}
悬空else
else遵循就近原则
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hhe\n");
else
printf("haha\n");
return 0;
}//啥也不输出
这种代码的阅读性不直观
适当使用{ }可以使代码的逻辑更清楚
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
{
printf("hhe\n");
}
}
else
{
printf("haha\n");
}
return 0;
}//输出haha
2.switch 语句
//switch 语句
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
default:
printf("输入错误!\n");
break;
}
}
switch 语句中,条件的入口为case,出口为break
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++; //m=3
case 2:
n++; //n=2
case 3:
switch (n)
{
case 1:
n++;
case 2:
m++; //m=4
n++; //n=3
break;
}
case 4:
m++; //m=5
break;
default:
break;
}
printf("m = %d, n = %d", m, n);
return 0;
}//输出 m = 5, n = 3