c语言学习笔记三



return 语句
如果没有返回结果,结束当前函数的执行,返回到调用它的地方


增量式开发

分局设计(stratify)

递归
计算阶乘
0!=1
n!=n*(n-1)!
示例代码:
  int factorial(int n){
if(n==0){
return 1;
}else{
int recurse=factorial(n-1);
int result=n*recurse;
return result;
}
}







循环语句

while语句
示例代码:
int factorial(int n){
int result=1;
while(n>0){
result=result*n;
n=n-1;
}
return result;
}



do/while语句
示例代码:
int factorial(int n){
int result=1;
int i=1;
do{
result=result*i;
i=i+1;
}while(i<=n);
return result;
}
for语句
示例代码:
int factorial(int n){
int result=1;
int i;
for(i=0;i<n;++i) {
//for(int i=0;i<n;++i){//??????
result=result+i;
}
return result;
}





break和continue语句
break 用于跳出语句块或循环
continue用于停止当前循环,不同的是他跳到循环体开头,执行下一次循环


示例代码:
1-100的素数
#include <stdio.h>
int is_prime(int n){
for(i=2;i<n;i++){
if(n%i==0){
break;
}
if(i==n){
return 1;
}else{
return 0;
}
}
}
int main(void){
int i;
for(i=1;i<100;i++){

if(!is_prime(i)){
contiue;
}
printf("%d\n",i);

}
return 0;
}








嵌套循环
示例代码:
#include<stdio.h>
int main(void){
int i,j;
for(i=1;i<=100;i++){
for(j=2;j<i;j++){
if(i%j==0){
break;
}
if(j==i){
printf("%d\n",i);
}
}
}
return 0;
}

打印小九九
#include<stdio.h>
int main(void){
int i,j;
for(i=1;i<=9;i++){
for(j=1;j<i;j++){
printf("%d",i*j);
}
printf("\n");
}
return 0;
}








goto语句和场景
无条件跳转
示例代码:
for(){
for(){
if(条件表达式){
goto 标号;
}
}
}
标号: 满足条件表达式后需执行的方法


应用场景:出现错误条件,跳到末尾执行错误处理(释放分配的资源,恢复修改


的全局变量等),c++和java中可以使用异常处理的方法(exception)
setjmp和longjmp可以实现函数间的跳转

你可能感兴趣的:(学习笔记)