c语言之分支和循环

hello!大家好!我是

一个乐于分享计算机方面知识的博主。

今天分享关于c语言的一些重要内容,希望多多支持!!!

本篇博客主要内容:

介绍有关c语言分支和循环语句的详细内容,小白也可以轻松看懂,如有错误或需要补充的地方,欢迎在评论区指正。

注:内容有些长,希望耐心观看,你,准备好了吗?


前言

c语言是一个结构化的语言,有顺序结构,选择结构,循环结构。

这些结构可由语句组成,那么今天就来介绍实现分支结构的语句循环语句以及转向语句


操作符

首先来简单介绍一下语句中会使用到的操作符

1.关系操作符

c语言中含有许多比较大小的表达式,称为关系表达式,而实现表达式所用的运算符成为关系运算符

> 大于运算符          <小于运算符         >=大于等于运算符         <=小于等于运算符 

==相等运算符(这个要非常注意,是两个等号才表示相等,不要写成一个等号,一个等号仅代表赋值

 !=不等运算符

2.条件操作符

条件操作符也叫做三目操作符,这个名字一看就是需要三个操作数的,所以条件操作符的形式为 a?b:c;

其中

a指一个条件表达式

当a的结果为真时条件操作符返回b

否则返回c

示例

#include <stdio.h>
int main(){
    int s=2>1?2:1;
    printf("%d",s);
    return 0;
}

结果为2

3.逻辑操作符

逻辑操作符主要用于提供逻辑判断,当需要更复杂的表达式时,一般用逻辑操作符构建。

主要有:

  •    逻辑取反运算符

        (改变一个表达式的真假)    注:0为假,非0为真

  • &&   与运算符

        放在语文中就是并且的意思,左右两边的表达式同真才为真,有假则结果为假,会发生短路,意思就是当左边的表达式已经判断为假的时候,右边的表达式将不再进行

  • ||     或运算符

        就是或者的意思,至少有一个表达式为真,则结果为真,否则结果为假


转向语句

在介绍分支语句之前,我们需要了解一些转向语句,便于在下面的分支语句和循环语句,例如switch语句中使用

break语句

终止语句,当使用break后,就会跳出循环,往后执行。

详细示例:

注:看完下面的分支语句和循环语句后再来看这个

如图,我们发现本来可以打印出1到9数字的,但是加上break后,只输出到4就停止了,因为遇到break,整一个循环就结束了

continue语句

继续的意思,跳过continue后面的语句。

详细示例:

注:看完下面的分支语句和循环语句后再来看这个

哎,我们发现好像这个也是只输出1234,那和break有什么区别吗?

其实,他只是停在了4处,程序并没有停止,当执行到continue后,就会转向while循环语句,而i刚才因为continue没有执行i++,则i仍然为5,就导致只要一进循环,就执行if语句,就会执行continue,导致形成了死循环。

goto语句

这是一个特别的语法,goto语句可以实现在同一个函数内跳转到设置好的标点处

例如:

如图,我们可以看出,当写goto 语句后,那么就会直接跳转到goto要跳转的地方,执行那个地方的语句,而不执行“再见”那一个语句了。


分支语句

C语言钟我们通常使用if和switch分支语句来实现分支结构

if语句

基本语句形式:

if(表达式){
    语句
}

当表达式结果为真,则执行语句,否则直接跳过if里的内容

else

if(表达式){
    语句1
}else{
    语句2
}

嵌套if

if(表达式1){
    语句1
}else if(表达式2){
    语句2
}else{
    语句3
}

悬空else问题

悬空else问题是指有许多if和else,且没有大括号,不知道else该跟哪一个if配对,就造成了悬空else问题。

解决方案:只要记住这一规则,所有的悬空else都可以解决了:当有多个if和else时,else总与最近的if相匹配

if语句的示例:

#include<stdio.h>
int main()
{
	int score;
	scanf("%d",&score);
	if(score>=60&&score<=70){
		printf("你及格了,再接再励哦"); 
	}else if(score>70&&score<=80){
		printf("你超及格线已经很多了,很棒呀"); 	
	}else if(score>80&&score<=90){
		printf("你快接近满分了,下回可要细心点哦"); 	
	}else if(score>90&&score<=100){
		printf("你太棒了,你的成绩等级最高,是A哦"); 	
	}else{
		printf("你的成绩等级最低,要加油哦"); 	
	}
	return 0;
}

switch语句

除了if语句,C语言还可以用switch语句来实现分支结构

基本形式

switch(expression){
    case value 1:statement;break;
    case value 2:statement;break;
    default:statement;break;
}
    

根据表达式expression不同的数值,执行相应的case,如果找不到对应的数值value那么执行default分支

注意:

break

千万不要省去,否则会导致下图的结果:

正确的写法:

default语句

每一个switch语句只能有一个default语句,而且它不止可以放在语句段的最后,它其实可以放在任何位置,后面最好加上break哦。


循环语句

讲完分支语句,那么来讲讲循环语句吧c语言提供了三种循环语句来实现循环结构,while    for    do-while.

while循环

 基本形式

while(表达式)
    语句;

与if语句的区别

通过观察,我们发现这个while语句好像与if语句有些相似,那么他们有什么区别呢?举个例子吧

当使用if时

而当用到while的时候,会不断循环,因为while里面的表达式是永远成立的。

代码及结果如下:

 while的执行流程:

示例

for循环

基本形式:

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

其中表达式1、2、3分别表示初始化变量、判断循环结束条件、调整循环变量

执行流程:

或许了解基本形式还是不太清楚怎么写,那么下面的流程图能让你更好的了解for循环

示例:

while循环和for循环的对比:

do while 语句

基本形式:

do{
    语句
}while(表达式)

执行流程:

示例:

while循环和do-while循环的对比:

while和do-while只相差一个do,那么他们的区别在哪里呢? 

  • while先判断,而do-while先执行语句再判断

循环的嵌套

刚已经学会了三种循环语句,实际在解决问题中往往会使用嵌套在一起才能更好的解决问题,下面就来讲一讲一个例子:

代码:

#include<stdio.h>//在屏幕上输出100到200里面的素数。
int main() 
{	
	for(int i=100;i<201;i++){//从100到200遍历
		int is=1;//先假设是素数
		for(int j=2;j<i;j++){//判断素数
			if(i%j==0){
				is=0;//判断不是素数就更改is的值
				break;//直接跳出这个循环了。
			}
		} 
		if(is==1){
			printf("%d ",i);
		}
		
	}
	return 0;
}

运行结果: 

 


总结

恭喜你,已经成功学会了分支和循环语句的介绍

相信如果你耐心看完,并把代码都敲了一遍,一定会收获不少东西。

制作不易,关掉这篇博客之前至少点个赞吧!!!

最后,我会进一步分享有关C语言以及其他的相关知识,欢迎大家多多来看我的博客,去更好的学习计算机方面的知识!加油!!!我们一起进步!!!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值