顺序+选择+循环
运算符是有优先级的,=的优先级最低
一.顺序结构
程序按照代码的书写顺序一行一行执行
二.选择结构
1.if语句
语法形式1:
if(表达式)
{
语句;
}
如果表达式为真,则执行花括号里面的语句
0为假,非0为真
e.g.输入一个整数,判断是否为奇数
int main() { int a; printf("请输入一个整数:"); scanf("%d", &a); if (a%2!=0) { printf("%d是奇数\n",a); } return 0; }语法形式2:
if(条件表达式1)
{
语句1;
}
else
{
语句2;
}
如果条件表达式为真,则执行语句1,否则执行语句2
e.g.输入一个整数,判断奇偶
int main() { int a; printf("请输入一个整数:"); scanf("%d", &a); if (a % 2 != 0) { printf("%d是奇数\n", a); } else { printf("%d是偶数\n", a); } }语法形式3:
if(表达式1)
{
语句1;
}
else if(表达式2)
{
语句2;
}
else
{
语句3;
}
e.g.输入一个数据n,如果大于等于10则输出:"n>=10";
如果大于等于5小于10则输出:"n>=5&&n<10"; 否则输出:"n<5"
int main() { int n; printf("请输入一个数据n:"); scanf("%d", &n); if (n >= 10) { printf("n>=10\n"); } else if (n >= 5 && n < 10) //&&逻辑与——>同时,并且的意思 { printf("n >= 5 && n < 10\n"); } else { printf("n<5\n"); } return 0; }逻辑运算符
1.&&逻辑与
表达式1&&表达式2:整个表达式的结果是由表达式1和表达式2共同决定的
a,b为两个表达式
只有两个表达式同时为真,整个表达式的结果才为真
2. !逻辑取反
!表达式把真变为假,把假变为真
3.短路与
表达式1&&表达式2
如果表达式1已经是假的了,那么表达式2是真是假都不重要,因为程序不会再向着表达式2执行了
4.||逻辑或
表达式1||表达式2
只要表达式中有一个为真,结果就为真
5.短路或
如果表达式1已经是真的了,则不会执行表达式2了
2.switch语句
switch(expression)
{
casevalue1:statement
casevalue2:statement
...
default:statement
}
! switch后的expression必须是整型表达式
case后的值,必须是整形常量表达式
e.g.输入一个1-7的数字,打印对应的信息
1.输入1-5,输出的是"工作日";
2.输入6-7,输出"休息日"
int main() { int a; scanf("%d", &a); switch(a) { case 1: printf("工作日\n"); case 2: printf("工作日\n"); case 3: printf("工作日\n"); case 4: printf("工作日\n"); case 5: printf("工作日\n"); break; case 6: printf("休息日\n"); case 7: printf("休息日\n"); break; default: printf("输入有误\n"); break; } return 0; }! 每个case后面的break是不能省略的,若省略了,则会一直执行遇到xiayigbreak结束
case和后边的数字之间必须有空格
default语句的作用是在没有合适的case进行匹配的时候执行
三.循环结构
1.while循环
条件为真时重复执行代码
语法结构:
while(循环条件)
{
//循环条件为真则循环体
}
e.g.在屏幕上打印1-10的值
int main() { int a=1; //条件变量的初始化 while (a <= 10) //判断 { printf("%d ", a); a++; //条件变量的变化 } return 0; }2.for循环
for(表达式1;表达式2;表达式3)
{
语句;
}
第一次循环执行“表达式1——>表达式2——>语句——>表达式3”的顺序
之后循环执行“表达式2——>语句——>表达式3”的顺序,
直至表达式2为假停止执行
表达式1:用来初始化条件变量
表达式2:用来写判断条件,表示真和假
如果表达式2不写默认为真
两个;不可以省略
表达式3:用于循环变量的调整
e.g.在屏幕上打印1-10的值
int main() { for (int i = 1;i <= 10;i++) { printf("%d ", i); } return 0; }3.do while循环
语法形式:
do
{
语句;
}
while(表达式);
e.g.在屏幕上打印1-10的值
int main() { int i = 1; do { printf("%d ", i); i++; } while (i <= 10); return 0; }特殊之处,先do再判断,即使while为假,也至少执行一次
while和for循环都是先判断,条件满足才进入循环,不满足则退出循环
4.循环嵌套
e.g.打印九九乘法表
//打印九九乘法表 int main() { for (int x = 1;x <= 9;x++) { for (int y = 1;y <= x;y++) { printf("%d*%d=%-3d", y, x, x * y);//前面加-,改为左对齐 } printf("\n"); } return 0; }5.break
打断、中断
break表示当前循环执行i==3之后循环结束
6.continue
继续
代码最终进入死循环:i=1时 i!=3 打印出1,i++;i=2,i!=3打印出2,i++;
i=3,continue回到while,i一直重复等于3,进输入死循环,打印不出结果
修改:
法二:改用for循环