vlambda博客
学习文章列表

精解C语言循环——初学者的福利


精解C语言循环——初学者的福利


(转载作者请注明出处)

废话不多说,直接上货....

不好意思,这段时间公司项目加急,没来得及更新

精解C语言循环——初学者的福利

精解C语言循环——初学者的福利


最近在使用C进行算法与数据训练的时候,发现自己的C循环忘了一些细节,这给我带来了很大困扰。为此,我在参考学习资料同时汇总了以下常见的实列,希望对你有帮助。
if和else
在C中,使用if和else关键字对条件进行判断。请先看下面的代码:
if else 的结构为:

if(判断条件){
    语句块1
}else{
    语句块2
}

#include<stdio.h>int main(){ int num; printf("请输入你疫情期间在家滞留了多少天:"); scanf("%d",&num); if(num>=60) { printf("很遗憾,你已经破产了!"); } else { printf("恭喜你,你度过了破产的风险期!"); }  return 0; } 
执行结果:

精解C语言循环——初学者的福利

多分支:
if else 语句也可以多个同时使用,构成多个分支,形式如下:

if(判断条件1){
    语句块1
} else  if(判断条件2){
    语句块2
}else  if(判断条件3){
    语句块3
}else  if(判断条件m){
    语句块m
}else{
     语句块n
}

#include<stdio.h>int main(){ int num; printf("请输入你疫情期间在家滞留了多少天:"); scanf("%d",&num); if(num>=60) printf("很遗憾,你已经破产了!"); else if(30>=num&&num>=15) printf("还可以,能撑过去!"); else printf("恭喜你,你度过了破产的风险期!"); return 0; } 
执行结果:

精解C语言循环——初学者的福利

嵌套语句:
#include<stdio.h>//假设按隔离天数算 int main(){ int num; printf("请输入你疫情期间在家滞留了多少天:"); scanf("%d",&num); if(num!=14) { if(num>14) printf("恭喜你,你解封了!"); else printf("期待你尽快解除隔离!");  }  else { printf("恭喜你,你度过了隔离的风险期!"); } return 0; } 
执行结果:

精解C语言循环——初学者的福利


二、switch case
C中虽然没有限制 if else 能够处理的分支数量,但当分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对出错的情况。为此,这里使用 switch case来解决。
基本格式如下:

switch(表达式){
    case 整型数值1: 语句 1;
    case 整型数值2: 语句 2;
    ......
    case 整型数值n: 语句 n;
    default: 语句 n+1;
}


#include <stdio.h>int main(){ int a; printf("请输入1~7中的一个整数:"); scanf("%d",&a); switch(a){ case 1: printf("星期1\n"); break; case 2: printf("星期2\n"); break; case 3: printf("星期3\n"); break; case 4: printf("星期4\n"); break; case 5: printf("星期5\n"); break; case 6: printf("星期6\n"); break; case 7: printf("星期天\n"); break; default:printf("输入错误!\n"); break; } return 0;}

执行结果:

精解C语言循环——初学者的福利


三、while(遍历)
在C语言中,共有三大常用的程序结构:
顺序结构:代码从前往后执行,没有任何“拐弯抹角”;
选择结构:也叫分支结构,重点要掌握 if else、switch 以及条件运算符;
循环结构:重复执行同一段代码。所谓循环(Loop),就是重复地执行同一段代码,例如要计算 1~66平方和:

精解C语言循环——初学者的福利

就要重复进行65次加法运算。

while循环的一般形式为:

while(表达式){
    语句块
}

通常将“表达式”称为循环条件,把“语句块”称为循环体
具体步骤:

  先计算“表达式”的值,当值为真(非0)时, 执行“语句块”;执行完“语句块”,再次计算表达式的值,如果为真,继续执行“语句块”……这个过程会一直重复,直到表达式的值为假(0),就退出循环,执行 while 后面的代码。

#include <stdio.h>int main(){ int i=1, sum=0; while(i<=66){ sum+=i*i; i++; } printf("%d\n",sum); return 0;}
执行结果:

精解C语言循环——初学者的福利

do-while循环:

除了while循环,在C语言中还有一种 do-while 循环。

do-while循环的一般形式为:

do{
    语句块
}while(表达式);

do-while循环与while循环的不同在于:它会先执行“语句块”,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次“语句块”。

用do-while计算1加到66平方和的值:

#include <stdio.h>int main(){ int i=1, sum=0; do{ sum+=i*i; i++; } while(i<=66); printf("%d\n", sum); return 0;}


执行结果:

精解C语言循环——初学者的福利


四、for

for 循环的一般形式为:

for(表达式1; 表达式2; 表达式3){
    语句块
}

它的运行过程为:
1) 先执行“表达式1”。
2)再执行“表达式2”,如果它的值为真(非0),则执行循环体,否则结束循环。
3) 执行完循环体后再执行“表达式3”。
4) 重复执行步骤 2) 和 3),直到“表达式2”的值为假,就结束循环。

上面的步骤中,2) 和 3) 是一次循环,会重复执行,for 语句的主要作用就是不断执行步骤 2) 和 3)。

  “表达式1”仅在第一次循环时执行,以后都不会再执行,可以认为这是一个初始化语句。“表达式2”一般是一个关系表达式,决定了是否还要继续下次循环,称为“循环条件”。“表达式3”很多情况下是一个带有自增或自减操作的表达式,以使循环条件逐渐变得“不成立”。

for循环的执行过程可用下图表示:


精解C语言循环——初学者的福利

我们再来计算以上平方和的值

#include <stdio.h>int main(){ int i, sum=0; for(i=1; i<=66; i++) { sum+=i*i; } printf("%d\n",sum); return 0;}

执行结果:

精解C语言循环——初学者的福利

精解C语言循环——初学者的福利

参考文献

http://c.biancheng.net/view/1811.htmlhttp://101.201.109.188/zentao/my/https://zyk.mingrisoft.com/Develop/view/id/1169/type/7/cid/12.html



你可能喜欢的文章
  • 数据分析开篇:一个简单的应用(2019/11/04)

  • 2020年数据分析必知必会(一):NumPy数组

  • 2020年数据分析必知必会(二):NumPy摘要----文章末尾附Python

  • 2020年数据分析必知必会(三):数组的形状和属性(有福利赠予)

  • 数据分析必知必必会(四):数组的转换,视图,拷贝,索引和广播(这里的“广播”是一个数组的应用:数据处理旧手机铃声)

  • 2020年数据分析必知必会(五):统计和线性代数(使用Numpy与Scipy实现)

  • 2020年数据分析必知必会(六):离散式复制的创建(以北京最近的猪肉价格为例子)

  • 2020年数据分析必知必会(七):pandas入门与数据结构基础

  • 2020年数据分析必知必会(八):使用pandas查询数据和统计分析的应用(短小但强大)

  • 2020年数据分析必知必会(九):数据的分组与聚合