i++和++i命令的区别
++ i 是先加后赋值;i ++ 是先赋值后加;
正常情况下,执行完毕,两种等价,例如:
int i=1;
i++;
int i=1;
++i;
执行完毕,i的值均为2。
但是在复合的表达式中、函数调用中却有明显区别。
i++,表示先取i的值进行表达式计算或函数调用,最后加法再计算 i=i+1;
++i,表示先加法计算i=i+1,然后在进行表达式计算或函数调用。
直接放代码:
#include <stdio.h>
int main() {
int i = 1;
int a = i++;
printf("%d\n", a); //a=1,因为i++是先调用再自增
int o = 1;
int b = ++o;
printf("%d", b);//b=2,因为++o先自增再调用
}
if选择语句
if选择结构是根据条件判断之后再做处理的一种语法结构
if(条件) {
代码块 //条件成立之后要执行的代码。可以是一条语句,也可以是一组语句
}
关键字if后小括号里的条件是一个表达式,而且表达式的值必须为true
或者false
当if关键字后的一对大括号里面只有一个语句时,可以省略大括号,但是为了避免有多个语句时遗忘大括号,以及保持程序整体风格一致,建议不要省略if结构块的大括号
if-else结构
int main() {
if ()
{
} else
{
}
}
if语句里面的表达式成立时会执行if语句代码块内的代码,如果不成立,会执行else代码块内的代码
else块最多有一个或者没有
switch语句
#include <stdio.h>
int main() {
int a;
scanf("%d", &a); //输入语句
switch (a) {
case 1:
printf("A\n");
break;
case 2:
printf("B\n");
break;
case 3:
printf("C\n");
break;
case 4:
printf("D\n");
break;
}
\\不要忘记加break,如果咱们不加break
\\ 输入1,成立,会直接把ABCD全部输出,输入2,会把BCD全部输出,以此类推
return 0;
}
不写break的情况:
题目练习
#include <stdio.h>
int main(void) {
int n;
scanf("%d", &n);
if ((n % 100 != 0 && n % 4 == 0) || (n % 100 == 0 && n % 400 == 0))
{
printf("是闰年");
}else
{
printf("不是闰年");
}
return 0;
}