C语言:结构化的程序设计语言,支持三种结构,顺序结构、选择结构、循环结构。生活中大大小小的事件基本都可以用这三种结构来描述,这是一种高度的抽象
什么是语句?
//表达式 #include <stdio.h> int main() { //一个大括号括起来的几条语句就是复合语句 3 + 5; //这里的 3 + 5 就是表达式语句 printf("hehe"); //这里的 printf() 就是函数调用语句 ; //只有一个 ; 就是空语句 return 0; }
C语句可分为以下五类:
1.表达式语句:
2.函数调用语句:
.控制语句(本次重点):
控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语言由九种控制语句。
可分为以下三类:
1.条件判断语句也叫分支语句:if语句、switch语句;
2.循环执行语句:do while语句、while语句、for语句;
3.转向语句:break语句、goto语句、continue语句、return语句。
4.复合语句:
5.空语句:
一.分支语句(选择结构):
1.if语句:
语法结构:
//单分支:
if (表达式)
{
语句;
}
//if #include <stdio.h> int main() { int age = 0; //输入 scanf("%d", &age); //单分支 if (age < 18) { printf("未成年"); //如果符合 表达式 ,则打印相应内容 //如果不符合 表达式 , 什么都不做 } return 0; }
//双分支:
if (表达式)
{
语句1;
}
else
{
语句2;
}
//if #include <stdio.h> int main() { int age = 0; //输入 scanf("%d", &age); 单分支 //if (age < 18) //{ // printf("未成年"); // //如果符合 表达式 ,则打印相应内容 // //如果不符合 表达式 , 什么都不做 //} //双分支 if (age < 18) { printf("未成年"); //如果符合 表达式 ,则打印相应内容 } else { //如果不符合 表达式 ,则执行else里的语句 printf("已成年"); } return 0; }
//多分支:
if (表达式)
{
语句1;
}
else if (表达式2)
{
语句2;
}
else
{
语句3;
}
//if #include <stdio.h> int main() { int age = 0; //输入 scanf("%d", &age); 单分支 //if (age < 18) //{ // printf("未成年"); // //如果符合 表达式 ,则打印相应内容 // //如果不符合 表达式 , 什么都不做 //} 双分支 //if (age < 18) //{ // printf("未成年"); // //如果符合 表达式 ,则打印相应内容 // //} //else //{ // //如果不符合 表达式 ,则执行else里的语句 // printf("已成年"); //} //多分支 if (age < 18) {//<18 青少年 printf("青少年\n"); } else if (age >= 18 && age <=30)//&&:条件与 {//18~30 青年 printf("青年\n"); } else if (age >= 31 && age <= 50)//&&:条件与 {//31~50 中年 printf("中年\n"); } else if (age >= 51 && age <= 80)//&&:条件与 {//51~800 中老年 printf("中老年\n"); } else if (age >= 81 && age <= 100)//&&:条件与 {//81~100 老年 printf("老年\n"); } else {//101+ 老寿星 printf("老寿星\n"); } return 0; }
//嵌套 if (age < 18) {//<18 青少年 printf("青少年\n"); } else { //if语句里再嵌套一个if语句 if (age >= 18 && age <= 30)//&&:条件与 {//18~30 青年 printf("青年\n"); } else if (age >= 31 && age <= 50)//&&:条件与 {//31~50 中年 printf("中年\n"); } else if (age >= 51 && age <= 80)//&&:条件与 {//51~800 中老年 printf("中老年\n"); } else if (age >= 81 && age <= 100)//&&:条件与 {//81~100 老年 printf("老年\n"); } else {//101+ 老寿星 printf("老寿星\n"); } }
补充:
1.写语句部分时,最好都加上{},即使用复合语句,不然只能执行一条语句
//补充1 #include <stdio.h> int main() { int age = 0; scanf( "%age", &age ); if ( age > 18 ) printf("已成年"); printf("谈恋爱"); return 0; }
2.而且不加{}的话,else会和最近的if匹配,有时会判断不清else是属于哪个if语句的
//补充2 #include <stdio.h> int main() { int a = 0; int b = 0; if ( a == 1 ) if ( b == 2 ) printf("hh"); else printf("ll"); return 0; }
3.不加{},语句可能会引起歧义
//补充3 #include <stdio.h> int test1() { //int n = 20; int n = 2; if ( n > 5 ) return 1; return 2; printf("hehe\n"); } int test2() { //int n = 20; int n = 2; if (n > 5) { return 1; } else { return 2; } } int main() { int m = test1(); printf("%d\n", m); int n = test2(); printf("%d\n", n); return 0; }
4.条件的书写
//补充4 #include <stdio.h> int main() { int n = 5; if ( n = 3 ) { printf("hehe\n"); } return 0; }