目录
关于break在for,do...while语句中的应用的示例
1.关键字default
在switch语句中,当所表达的值与所有的case标签的值都不匹配,且自身并不想忽略不匹配所有标签的表达式的值的时候,可以使用default子句。
#include <stdio.h>
int calendar(int year,int month) {//算出对应年的对应月有多少天
int day = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;//只有见到break,才停止
case 2:
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
day = 29;
else day = 28;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
default://一般放在最后,放在最后不是语法要求,只是语义要求,一般是dafault...break;
printf("输入错误");
return;
}
printf("%d年所在的%d月有%d天", year, month, day);
return day;
}
void main()
{
int year, month;
printf("输入对应的年份与月份:");
scanf_s("%d %d",&year,&month);
calendar(year, month);
system("pause");//表示在末尾暂停一下
}
当出现月份合适的情况
当出现月份不合适的情况
如果表达的值与所有的case标签的值都不匹配怎么办?
其实也没什么,结构就是所有的语句都被跳过而已。 程序并不会终止,也不会报错,因为这种情况在C中并不认为适合错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
你可以在语句列表中增加一条default子句,把下面的标签 default: 写在任何一个case标签可以出现的位置。 当 switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。 所以,每个switch语句中只能出现一条default子句。 但是它可以出现在语句列表的任何位置,而且语句流会像贯穿一个case标签一样贯穿default子句。
2. 关键字continue
#include <stdio.h>
void main()
{
int i = 0;
while (i < 10) {
i++;
if (5 == i) {//为了防止出现条件为i = 5的情况,可以写成5 == i的情况,可以避免上述情况的发生
continue;//条件成立,结束当轮循环,进入下一轮循环
}
printf("i = %d\n", i);
}
}
continue;可以结束本轮循环,进入下一轮循环
continue是用于终止本轮循环的,进入下一轮循环,也就是本轮循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一轮循环的入口判断。continue在for语句中的使用也大抵相同。
3.break在while语句中的应用
#include <stdio.h>
void main()
{
int i = 0;
while (i < 10) {
i++;
if (5 == i) {//为了防止出现条件为i = 5的情况,可以写成5 == i的情况,可以避免上述情况的发生
break;//while中的break是用于永久终止循环的
}
printf("i = %d\n", i);
}
}
其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。他只是跳出一层循环,无法跳出全部循环。 所以:while中的 break是用于永久终止当前所在的一层循环的。break在for语句中的使用也大抵相同 。
关于break在for,do...while语句中的应用的示例
//代码1
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
break;
printf("%d ", i);
}
return 0;
}
//代码2
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
continue;
printf("%d ", i);
}
return 0;
}
//代码3
#include <stdio.h>
int main()
{
int i = 10;
do
{
if (5 == i)
break;
printf("%d\n", i);
} while (i < 10);
return 0;
}
//代码4
#include <stdio.h>
int main()
{
int i = 10;
do
{
if (5 == i)
continue;
printf("%d\n", i);
} while (i < 10);
return 0;
}