目录
本文主要讲解:
C语言中由一个分号;隔开的就是一条语句
printf("hehe");
1+2;
C语言中,用各种操作符把变量连起来,形成有意义的式子,就叫做表达式
操作符:+,-,*,/,%,>,<,=,==..
//1
if(表达式)
语句;
//2
if(表达式)
语句1;
else
语句2;
//3. 多分支
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
//4. 嵌套
if(表达式1)
{
语句1;
if(表示式x)
{
语句x;
}
else
{
语句y;
}
}
else if(表达式2)
{
语句2;
}
else
{
语句3;
}
注:
1. 表达式结果为真,则语句执行; C中0表示假,非0表示真 (可以使用bool类型,仅限c99之后)
2. if语句执行,先执行完成表达式的值,得到逻辑结果,再进行判定,再进行分支功能
if(0)
{
//注释的内容
}
不推荐,别人可能不理解(0表示为假,不进入循环)
结论:就近原则(养成代码块包含的代码风格)
//测试代码换一下
int main()
{
int x = 0;
int y = 1;
if (10 == x)
if (11 == y)
printf("hello bit\n");
else
printf("hello world!\n");
system("pause");
return 0;
}
//else 匹配采取就近原则
//推荐写法
int main()
{
int x = 0;
int y = 1;
if (10 == x)
{
if (11 == y)
{
printf("hello bit\n");
}
}
else
{
printf("hello world!\n");
}
system("pause");
return 0;
}
1.if 语句后面的分号:默认为if是一个语句,而后面{ }内的执行项会固定执行 2.if else语句顺序别弄反 3.赋值运算符不能用在产生布尔值得表达式上(尽量写在判断语句之前) 4.‘=’和‘==’别混淆,会造成不必要的错误 5.if-else if语句以else结束
switch(整型变量/常量/整型表达式){
case var1:
break;
case var2:
break;
case var3:
break;
default:
break;
}
switch语句也是一种分支语句,常常用于多分支的情况 这种多分支,一般指的是很多分支,而且判定条件主要以整型为主
//如
switch (day){
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期日\n");
break;
default:
printf("bug!\n");
break;
}
case的作用:本质是进行判定功能 break在switch中的作用:break本质其实是进行分支功能 case之后,如果没有break,则会依次执行后续有效语句,直到碰到break跳出
int main()
{
int day = 6;
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("周内\n");
break;
case 6:
case 7:
printf("周末\n");
break;
default:
printf("bug!\n");
break;
}
return 0;
}
switch(m) && case n
//其中m 和 n必须是什么类型变量或者表达式? 整型变量/常量/整型表达式
//case 语句后面是否可以是const修饰的只读变量呢? 不行,const修饰后为常变量但本质还是变量
default可以出现在switch内的任何部分 结论:尽管如此,我们依旧强烈推荐default应该放在case语句的最后
//while
条件初始化
while(条件判定){
//业务更新
条件更新
}
//for
for(条件初始化; 条件判定; 条件更新){
//业务代码
}
//do while
条件初始化
do{
条件更新
}while(条件判定);
while(1){
}
for(;;){
}
do{
}while(1);
int main()
{
while (1){
char c = getchar(); //获取字符//输入abcd#1234
if ('#' == c){
break;
}
printf("echo: %c\n", c);
}
system("pause");
return 0;
}
//测试用例1:break:终端输除abcd
//测试用例2:continue:终端输入abcd1234
break:跳出循环(结束循环) continue:结束本次(一次)循环
在while或do while语句中,遇到continue跳到条件判定 在for语句中,遇到continue跳到条件更新(调整),再进行条件判定
int main()
{
int i = 0;
START:
printf("[%d]goto running ... \n", i);
++i;
if (i < 10){
goto START;
}
printf("goto end ... \n");
return 0;
}
一般禁用,避免破坏代码,不过有需要还是必须会用