语句
定义:
c语言中有一个分号,隔开的就是一条语句。
分类:
顺序语句
选择语句
- if语句
#include<stdio.h>
#include<stdbool.h>
void main()
{
bool flag = true;
if (!flag)
printf("OK\n");
else
printf("Error\n");
}
得到
Error
判断一个数是否为奇数
输出1-100之间的奇数
- switch语句:常用于多分支的情况
枚举法
#include<stdio.h>
void main()
{
int day = 0;
switch (day)
{
case 1:
printf("星期一\n");
break;//day=1时,当break不存在时,就会将星期二同时输出,直到有一个break存在。
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期七\n");
break;
default:
printf("day错误,请重新输入...\n");
break;
}
return 0;
}
结果:
day错误,请重新输入...
输入年份与月份,输出具体天数
```bash
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void main()
{
int year,month,days;
while (1)
{
printf("input year and month:>");
scanf("%d %d",&year,&month);
switch (month)
{
case 1:
days = 31;
break;
case 2:
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
days = 29;
else
days = 28;
break;
case 3:
days = 31;
break;
case 4:
days = 30;
break;
case 5:
days = 31;
break;
case 6:
days = 30;
break;
case 7:
days = 31;
break;
case 8:
days = 31;
break;
case 9:
days = 30;
break;
case 10:
days = 31;
break;
case 11:
days = 30;
break;
case 12:
days = 31;
break;
}
printf("%d年的%d月有:%d天\n", year, month, days);
}
}
简化后
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void main()
{
int year,month,days;
while (1)
{
printf("input year and month:>");
scanf("%d %d",&year,&month);
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
days = 29;
else
days = 28;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
printf("输入错误,请重新输入....\n ");
break;
}
printf("%d年的%d月有:%d天\n", year, month, days);
}
}
循环语句——for语句,while语句,do_whlie语句
(for循环用于循环次数确定,while循环用于循环条件一定时,do_while循环用于不论循环条件是否满足,都要执行至少一次)
for循环
#include<stdio.h>
void main()
{
int ar[] = { 1,2,3,4,5,3,6,7,8,9,3,3,3,3,2,1 };
int n = sizeof(ar) /sizeof(ar[0]);
for (int i = 0; i < n; i++)
{
printf("%d", ar[i]);
}
printf("\n");
}
while循环
#include<stdio.h>
void main()
{
int ar[] = { 1,2,3,4,5,3,6,7,8,9,3,3,3,3,2,1 };
int n = sizeof(ar) /sizeof(ar[0]);
int i = 0;
while (i < n)
{
printf("%d", ar[i]);
i++;
}
printf("\n");
}
do_while循环
#include<stdio.h>
void main()
{
int ar[] = { 1,2,3,4,5,3,6,7,8,9,3,3,3,3,2,1 };
int n = sizeof(ar) /sizeof(ar[0]);
int i = 0;
do
{
printf("%d", ar[i]);
i++;
}
while (i < n);
printf("\n");
}
break在while循环中的作用:在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。所以,while中的break是用于永久终止循环的。
continue是用来终止本次循环,也就是本次循环中continue后面的代码不会执行,而是直接跳转到while语句的判断部分,进行下一次循环的入口判断。
例题
输入数字进行加减计算
#define _CRT_SECURE_NO_WARNINGS
#include<stdbool.h>
#include<stdio.h>
int Add(int a, int b)
{
return a + b;
}
int Sub(int a, int b)
{
return a - b;
}
int Mul(int a, int b)
{
return a * b;
}int Div(int a, int b)
{
return a / b;
}int Mod(int a, int b)
{
return a % b;
}
void main()
{
int select = 1;
int op1, op2 ,result;
while (select)
{
printf("*****************************\n");
printf("*[1]Add [2]Sub *\n");
printf("*[3]Mul [4]Div *\n");
printf("*[5]Mod [0]Quit *\n");
printf("*****************************\n");
printf("请选择:>");
scanf("%d", &select);
if (select == 0)
break;
printf("请输入op1和op2:>");
scanf("%d %d", &op1, &op2);
switch (select)
{
case 1:
result = Add(op1, op2);
break;
case 2:
result = Sub(op1, op2);
break;
case 3:
result =Mul (op1, op2);
break;
case 4:
result = Div(op1, op2);
break;
case 5:
result = Mod(op1, op2);
break;
default:
printf("输入的cmd有误,请重新输入....\n");
break;
}
printf("result=%d\n", result);
}
printf("系统退出\n");
}