二、分支和循环【scholary】
- 分支语句- switch
switch (condition) { case 1: ...; case 2: ...; case 3: ...; default: 
 ...; }注意:switch语句只有遇到break才会跳出循环,如果case1无break语句,会按顺序执行case2、case3……直到结束。break只会结束最近的switch语句。 
- if
int zero(int i)//if语句例子 { if (i > 0) i--; else if (i < 0) i++; else return 0; } if语句从上到下依次判断。遇到符合条件的分支进入执行后结束。 
 
- switch
- 循环语句- while
while (condition) { statement; } while循环中可以使用语句 continue 和 break。continue表示跳出本次循环 break表示跳出循环。 
- for
for语句形式为: for(赋值:判断:调整) {循环体} for (i=1;i < 100;i++) { printf("%d\n", i); } 在for循环中依然可以用break和continue。 break为跳出循环,continue为跳出本次循环。但与while中不同,跳出后仍会执行for语句中的表达式3。 for循环的语句中表达式是可以省略的。若判断句省略,则其恒为真。 
- do while
int i = 1; do { printf("%d ", i); i++; } while (i < 10); do while语句只包含执行和判断语句,需要在循环前赋值。且先执行,后判断。程序至少会执行一次。 break 跳过判断部分,跳出循环。 continue跳过判断部分,进入下一次循环。 
 
- while
- 缓冲区与getchar函数
输入缓冲区是输入函数读取数据的区域。用户在键盘中输入的字符会被存进输入缓冲区。
getchar函数是头文件<stdio.h>中的一个库函数,其作用是获取输入的一个字符。保存类型为int型(ascii码)。
scanf函数在获取string类型的数据时,遇到空格或回车时会停止,并取走之前的所有字符。但空格和回车会遗留在输入缓冲区。
getchar函数可以用来清空输入缓冲区,代码如下:
int ch; while ((ch = getchar()) != '/n'); { ; }
2.二分查找法
采用分段方式查找。数据的最大查找次数为log2n,可以较大提高查找效率。
在编写二分法程序时,有几个注意点:
- 数据形式是离散数据
- 最后一次查找时会遇到仅剩1数的情况 此时左标记==右标记,若该值不等于查找值会出现左右标互换
- 查找结束比对结果
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号