1、break和continue的用法和区别
(1)break:
break语句的功能是:在switch语句中使流程跳出switch结构。
在循环语句中使流程跳出当前循环。
/*
将从键盘上输入的若干个正整数求和,遇到负数则终止
程序,并且输入的数不超过10个。
输入:正整数
计算:求累加和
输出:和
*/
#include <stdio.h>
#define MAX 10
int main()
{
int i;
int sum = 0;
for (i = 0; i < MAX; i++)
{
int num;
printf ("please input a num:\n");
scanf ("%d", &num);
if (num < 0)
{
break;
}
else
{
sum += num;
}
}
printf ("sum = %d\n", sum);
return 0;
}
(2)continue:
continue语句的功能是:在循环语句中使本次循环结束,即跳过循环体中下面尚未执行的语句,接着进行下次是否执行循环的判断。
// 编程把100~200之间的不能被3整除的数输出。
int main()
{
int i;
for (i = 100; i <= 200; i++)
{
if (i % 3 == 0) // 能被3整除,不需要输出
continue; // 这一次循环到此为止,直接执行下一次循环
printf ("%4d", i);
}
printf ("\n");
return 0;
}
2、作业
(1)
/*
用switch语句实现简单的计算器功能(要求从键盘输入操作数和运算符)。
例如:输入:3*4
输出:12
*/
#include <stdio.h>
int main()
{
int num1,num2,result;
char ch;
scanf("%d %c %d",&num1,&ch,&num2);
switch(ch)
{
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
}
printf("%d\n",result);
return 0;
}
(2)
/*
编程实现统计某年某月份的天数。
例如:输入:2017.7
输出:31天
*/
int runnian(int year)
{
int leap = 0;
if(year % 4 == 0)
{
if(year % 100 == 0)
{
if(year % 400 == 0)
{
leap = 1;
}
else
{
leap = 0;
}
}
else
{
leap = 1;
}
}
else
{
leap = 0;
}
return leap;
}
#include <stdio.h>
int main()
{
int year,month,leap;
scanf("%d.%d",&year,&month);
leap = runnian(year);
if(leap == 0)
{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
printf("31天\n");
break;
case 4:
case 6:
case 9:
case 11:
printf("30天\n");
break;
case 2:
printf("29天\n");
break;
}
}
else
{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
printf("31天\n");
break;
case 4:
case 6:
case 9:
case 11:
printf("30天\n");
break;
case 2:
printf("28天\n");
break;
}
}
return 0;
}