C的回归基础学习2——基础语句
前言
控制语句与辅助语句,即高中数学的程序框图题,是整个程序设计的基础所在。
控制语句——条件分支
1.if-else
疯狂if,超大常数警告
作为最常用的控制语句,if用法很简单。
if(表达式1)
语句1;
else if (表达式2)
语句2;
else if...
...
else
一些小细节
- if()括号的中的表达式的结果是bool。
- if语句块中一般一句话是不用加大括号的(但如果是return的话还是加的好)。
- 据说判断整型真假时最好用 “if( value == 0 )” 或 ”if( value != 0 )"比较好,而bool直接用 " if ( flag ) " 或 " if ( !flag ) "
2.switch
我也想要一台switch
switch作为不常用的的语句,实现比较复杂,但是能使代码比一堆 if-else 更明了
switch(value)
{
case 1 V1: 语句1
break;
case 2 V1: 语句2
break;
case 3 V1: 语句3
break;
case 4 V1: 语句4
break;
...
default: 语句N
break;
}
当value的值与某一判断值相等时便执行相应的语句,而当没有正确的判断值时,进入default。一般来讲,value是整数。
控制语句——循环
时间复杂度的罪魁之一
1.for( )
for循环天下第一
我认为for是功能性最强的循环语句
for(int i = 0; i < n; i++)//这是最常用的一种模式
一些小细节
- for( 1 ;2 ;3)1处一般给变量赋值,2表示循环条件,3用于对某些变量进行修改。根据不同情况修改可以得到不同的循环。如:
for(int i = h[point] ; i ; i = nxt[i])//这是邻接表存图时的遍历循环
- for( ; ; )可以表示无限循环
- for的运算顺序
for(a,b,c){d;}
所以一次循环包括:判断,执行语句块,更新
2.while 与 do-while
while我记得用的很少(一般是队列和bfs?),do-while更跟不用说了
while(表达式)
{
...
}
do
{
...
}while(表达式)
当表达式为真的时候就执行大括号里的语句,两者唯一不同的是do-while至少做一次
- while(true)也可以做无限循环。
另外循环之间是可以嵌套的,但是一般不会太多,毕竟循环的复杂度太高了
辅助语句:break 和 continue
一句话解决:break直接停止这个循环中,不会再做整个循环;continue直接跳过当前这一次循环,不会在做这次循环中剩下的语句。
结语
边写的时候我想到了一些点
- 一定要注意自己的代码风格,当初因为代码风格不行,debug多花了多少时间,现在重新打代码了,要练成好的代码风格。
- #define 宏定义是一个很好用的小技巧