if语句:
语法形式:
if(表达式)
语句 1 //多条语句加括号
esle
语句2
//else总是跟最近的if匹配
int main() //偶数判定
{
int a = 0;
scanf("%d", &a);
if (a % 2 == 0)
{
printf("%d 是偶数\n", a);
}
else
{
printf("%d 是奇数\n", a);
}
return 0;
}
在C语言中0为假,非0为真
以上面代码为例如果输入值为10的话,满足10/2=0的条件为真,所以打印“偶数”,反之为假打印“奇数”
if语句的嵌套使用:
int main()
{
int num = 0;
scanf("%d", &num);
if (num > 0)
{
if (num % 2 == 0)
printf("偶数\n");
else
printf("奇数\n");
}
else
{
printf("非正数\n");
}
return 0;
}
switch语句
语法形式:
switch(表达式)
{
case 1:statement
case 2:statement
default:statement
}
int main()
{
int a = 0;
scanf("%d", &a);
switch (a % 3)
{
case 0:
printf("整除\n");
break;
case 1:
printf("余数是1\n");
break;
case 2:
printf("余数是2\n");
break;
}
return 0;
}
需要注意的是:
1. case和后面跟的数字一定要有空格,并且每个case结束后要加break才能跳出这个switch语句
2. switch后的表达式必须是整形, case的值也必须是整形表达式
在使用switch语句时很可能遇到所有case都无法满足的情况,就需要用到default来应对
for循环
语法形式:
for(表达式1; 表达式2; 表达式3)
语句1;
for循环把初始化,判断和调整三部分整合到了一起,分别就是表达式1,2,3
并且都可以省略,但判断省略则恒成立
(非常适合生成从a ~ b的数字)
int main21()
//for循环中的初始化,判断,调整可以省略
{
for (int a = 1; a <= 10; a++) //1.初始化 2.判断 3.调整
{
printf("%d ", a);
}
return 0;
}
int main() //1-100之间3的倍数之和
{
int a = 0;
int sum = 0;
for (a = 3; a <= 100; a += 3) //因为是3的倍数直接从3开始,并每次++3
{
sum = sum + a;
}
printf("%d\n", sum);
return 0;
}
while循环
语法形式:
while(表达式)
语句
int main18() //打印1~10的数
{
int a = 0; //初始化
while (a <= 9) //判断
{
printf("%d ", a);
//a += 1; //调整
}
return 0;
}
do - while循环
语法形式:
do
{
语句;
}while(表达式);
先执行语句在判断内容
int main() //生成1~10的数
{
int a = 1; //初始化
do
{
printf("%d ", a); //多太语句加{ }
a++; //调整
} while (a <= 10); //判断
return 0;
}
break 和 continue
break是跳出本个循环, continue是跳过本次循环后再进行下一次循环
用while循环来举例
int main() //while循环中的 break
{
int a = 1;
while (a <= 10)
{
if (a == 5)
break; //跳出循环,打印1 2 3 4
printf("%d ", a);
a++;
}
return 0;
}
int main() //while循环中的 continue
{
int a = 1;
while (a <= 10)
{
if (a == 5)
continue; //跳过本次循环,打印死循环
printf("%d ", a);
a++;
}
return 0;
}
go to语句
int main()
{
printf("嘻嘻\n");
goto next;
printf("哈哈\n"); //goto语句把打印“哈哈”给跳过 //next只是名字可以改
next:
printf("嘿嘿\n");
return 0;
}
go to语句可以往前跳也可以往后,但尽量少用避免分不清反向
操作符
关系操作符 < > <= >= == !=
用来判断结果真假,通常返回0或1
多个关系操作符不易连用
int main() //数字判断
{
int a = 0;
scanf("%d", &a);
if (a == 0) //等于
printf("为零");
else if (a > 0) //大于
printf("正数");
else //小于
printf("负数");
return 0;
}
关于等号== , 刚写可能会误写成赋值号=
可以写成3 == a
int main()
{
int a = 0;
if (a == 3)
printf("haha\n");
if (3 == a) //以防把 == 号写错
printf("eee\n");
return 0;
}
条件操作符(三目操作符)
int main()
{
int a = 0;
int b = 0;
scanf("%d", &a);
b = (a > 5 ? 3 : -3); //a>5为真执行3, 为假执行-3
printf("%d\n", b);
return 0;
}
1. 逻辑取反 !
2. 逻辑与 &&
int main() //逻辑与运算 &&
{
int month = 0;
scanf("%d", &month);
if (3 <= month && month <= 5)
printf("%d月,是春季\n", month);
else
printf("其他季节\n");
return 0;
}
3. 逻辑或 ||
int main() //逻辑或运算 ||
{
int month = 0;
scanf("%d", &month);
if (month == 12 || month == 1 || month == 2)
printf("%d月,是冬季", month);
return 0;
}