一、什么是语句?
什么是表达式?
带有运算符:a+b c/d e>f x=y+z
什么是c中的语句?(c语言是顺序结构)
以;(分号)结尾的都叫做语句。
#include<stdio.h>
int main()
{
printf("hello bit!\n");
int a = 10;
int b = 20;
; //也可以编过,什么都不做的叫空语句;若将所有语句写成一行也行,但是不推荐
return 0;
}
二、分支语句(选择结构)
2.1 if语句
if语句的语法结构:
if(表达式)
语句;
if(表达式)
语句1;
else
语句2;
多分支:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int age = 18;
printf("输入年纪#");
scanf("%d", &age); //取缔值
if (age >= 18) { //先执行表达式的逻辑结果,再用if判断
printf("你已经成年了!\n");
}
else {
printf("你没有成年!\n"); //if判断是先判断,后分支
}
}
判断各个不同年龄段的人划分:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int age = 18;
printf("输入年纪#");
scanf("%d", &age); //取缔值
if (age < 18) {
printf("未成年!\n");
}
else if (age < 25) {
printf("青年!\n");
}
else if (age < 35) {
printf("壮年!\n");
}
else if (age < 50) {
printf("中年!\n");
}
else {
printf("老年!\n");
}
}
else:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 0;
int b = 2;
if (1 == a) { //防御性编程
if (b == 2) {
printf("you can see me!\n");
}
}
else
printf("hello else!\n");
}
else采取就近原则,与自己离得近的else进行匹配
1)不能省略if/else 后面的花括号,哪怕if/else什么也没做!
2)花括号可以放在if/else后,也可以重新起行,不同的公司有不同的编码风格。
3)if/else匹配原则:与最近if匹配。
练习:
1、判断一个数是否为奇数
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int IsOdd(int x) {
if (x % 2 == 1) {
return 1;
}
return 0;
}
int main() {
int a = 31;
if (!IsOdd(a)) {
printf("%d 是偶数!\n", a);
}
else {
printf("%d 是奇数\n", a);
}
}
2、输出1-100之间的奇数
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int IsOdd(int x) {
if (x % 2 == 1) {
return 1;
}
return 0;
}
int main()
{
int i = 1;
for (; i <= 100; i++) {
if (!IsOdd(i)) {
//printf("%d 是偶数!\n", i);
}
else {
printf("%d 是奇数\n", i);
}
}
}
2.2 switch语句(多分支判断)
写起来更简单,条理更清晰。
switch(整型表达式)
{
语句项;
}
switch语句判断能力由case承担,分支能力由break承担。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int day = 5;
switch (day) {
case 1:
printf("星期一");
break;
case 2:
printf("星期二");
break;
case 3:
printf("星期三");
break;
case 4:
printf("星期四");
break;
case 5:
printf("星期五");
break;
case 6:
printf("星期六");
break;
case 7:
printf("星期天");
break;
default: //禁止省略default,位置不影响
printf("输入有误!\n");
break;
}
}
若没有break,则一直运行到匹配为止,包括default。
1、输入1-5输出量是“Weekday”;
2、输入6-7输出“Weekend”;
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int day = 5;
switch (day) {
case 1:
case 2:
case 3:
case 4:
case 5:
printf("Weekday!\n");
break;
case 6:
case 7:
printf("Weekend!\n");
break;
default:
printf("输入有误!\n");
break;
}
}