admin管理员组文章数量:1794759
还不会分支与循环语句吗,这篇文章让你从从此掌握分支与循环语句!!!
前言:首先我们要知道分支与循环语句一共有九类,他们也被统称为控制语句,从而实现顺序结构,选择结构,循环结构的的程序编写。我们又可以把他们细分为三大类:分支语句,循环语句,转向语句。 分支语句包括:if语句,switch语句 循环语句包括:while语句,for语句,do... while语句 转向语句中包括:break语句,continue语句,goto语句(本篇文章未讲),return语句(本篇文章未讲)
1.if语句
1.1 单独的if语句
基本语法形式如下:
if(表达式) 语句;
如果表达式为真(非0),就会执行下面的一句,表达式为假(0),就不会执行语句。/*在c语言中1表示为真0表示为假*/
1.2 if ...else...语句
基本语法形式如下:
if(表达式) 语句1; else 语句2;
如果表达式为真(非0),就会执行语句1,表达式为假(0),就会执行语句2。
1.3分支中包含多条语句
C语言中默认if和else语句中都只能控制一条语句,如果我们想要他们控制多条语句时候我们该怎么办呢?哈哈很简单的,把控制的语句放在{}中就可以实现啦。
例如:
#include<stdio.h> int main() { if() { printf("代阳说:"); printf("我爱陶"); } else { printf("如果陶不喜欢代阳"); printf("代阳还是喜欢陶"); } return 0; }
1.4嵌套if
我们生活中常常有很多选择,远远可能大于2个以上,那我们又想要用if语句来编写,那怎么办呢?
if嵌套可以来解决。
if...else...语句中,else可以与另一个if语句连用,构成多重判断。
例子:
代码语言:javascript代码运行次数:0运行复制if() { 语句1; 语句2; } else if { 语句3; 语句4; } ...... else { 语句5; }
#include<stdio.h>
int main()
{
int a;
printf("请陶输入:1, 2,3");
while (scanf("%d",&a)!=EOF)
if(a==1)
{
printf("陶答应做代阳女朋友");
}
else if(a==2)
{
printf("陶不得不答应做代阳女朋友");
}
else
{
printf("代阳强迫陶不得不答应做代阳女朋友");
}
return 0;
}
2. switch语句
2.1 switch 实现分支结构的基本结构
其实switch和if都是用来实现分支结构的,不过switch比较特殊,它可以实现多条分支的判断。在多条分支的判断中switch比if嵌套形式呈现的更加清楚,容易解读。但是不代表多条分支的判断我们都盲目的用switch语句,switch语句也有自己的缺点。
基本结构形式如下
switch(expression) { case value1: statement case value2 : statement ...... defalut:statement }
注意几个点:
1: expression必须为整型表达式
2: case 后面的值必须为整型常量表达式/*在c语言中字符常量表方式也归为整型*/
3: case和后面的值必须空一格,值与“:”可以空格也可以不空格,例如:case 1:或case 1 :
2.2将if嵌套语句程序转化为switch语句
接下来让我把上面写的if嵌套语句转化为switch语句,如下:
代码语言:javascript代码运行次数:0运行复制#include<stdio.h>
int main()
{
int a;
printf("请陶输入:1, 2,3");
while (scanf("%d",&a)!=EOF)
switch(a)
{
case 1: printf("陶答应做代阳女朋友\n"); break;
case 2: printf("陶不得不答应做代阳女朋友\n"); break;
case 3 printf("代阳强迫陶不得不答应做代阳女朋友\n"); break;
}
return 0;
}
是不是一幕了然了,细心的小伙伴肯定看到后面多个break:下面我们开始讲讲这个break的作用
2.3 switch语句中的break
如果在switch语句中不加入break,那么当输入当陶1时候打印会出现:
陶答应做代阳女朋友 陶不得不答应做代阳女朋友 代阳强迫陶不得不答应做代阳女朋友
显然如果 case 1: printf("陶答应做代阳女朋友\n");后面没有break,程序会往下接着运行,所以break在这里是终止程序运行。
2.4 switch语句中的default
defsult语句是在所有情况都不满足时候执行的,现在让我们修改下上面的程序:
代码语言:javascript代码运行次数:0运行复制#include<stdio.h>
int main()
{
int a;
printf("请陶输入:1, 2,3");
while (scanf("%d",&a)!=EOF)
switch(a)
{
case 1: printf("陶答应做代阳女朋友\n"); break;
case 2: printf("陶不得不答应做代阳女朋友\n"); break;
case 3 printf("代阳强迫陶不得不答应做代阳女朋友\n"); break;
defalut:printf("你输入错啦,请输入1或2或3");
}
return 0;
}
这样当陶输入其他数字时候,就可以提醒她重新输入。
2.5 switch语句中的default和case的顺序问题
注意case和defalut是没有顺序要求的,只是大家习惯于case后面加defalut。只要符合语法规定,defalut可以在case前面。
3. while语句
3.1 while语句的基本形式
基本形式如图:
while(表达式) { 语句; }
表达式的值为1,执行语句,表达式值为0,不执行语句。
3.2 while语句的基本执行流程
执行流程:
4. for语句
4.1for语句的基本形式
for(表达式1;表达式2;表达式3) { 语句; }
表达式1:初始化,程序中只进行一次。
表达式2:用于程序的判断
表达式3: 用于程序的调整
4.2while语句的基本执行流程
5. do while语句
5.1 do while语句的基本形式
do { 语句; } while(表达式);
这个语句不管判断真假都会先执行一次语句。
while(表达式);后面有一个“;”,不要忘了哦
5.2 do while语句的基本执行流程
6. break语句和continue语句
前言:break的作用是用于永久的终止循环,只要break被执,循环跳出,继续往后执行,Continue语句的作用跳过本次循环中的continue后边的代码,在for语句和while中有差异。
6.1while中的break语句和continue语句
与前言中描述的一样
6.2for中的break语句和continue语句
break语句和前言中描述的一样,但是continue有些区别:
代码语言:javascript代码运行次数:0运行复制#include<stdio.h>
int main()
{
int a = 0;
while(a<=10)
{
if(a==5)
continue;
printf("第%d天喜欢陶\n",a);
a++;
}
return 0;
}
#include<stdio.h>
int main()
{
int a = 0;
for(int a =0;a<=10;a++)
{
if(a==5)
continue;
printf("第%d天喜欢陶\n");
}
return 0;
}
大家可以看到在while循环中程序陷入了死循环,在for打印的全部的内容,这是因为两个语句调整的顺序不一样,while语句中a++调整部分在continue后面,当第一次a等于5时候if语句成立跳出循环,然后判断a<=10,再次进入循环,a==5 if语句成立再次跳出循环,陷入死循环。for语句中当第一次a等于5时候if语句成立跳出循环,然后会直接跳到调整部分(a++),然后a==6,再次进行判断,后面大家应该都懂
6.3 do...while语句中的break和Continue语句
与前言中描述的一样
7.循环的嵌套
7.1三种循环的嵌套
输入100~200范围数字的全部素数
代码语言:javascript代码运行次数:0运行复制#include<stdio.h>
#include<math.h>
int main(){
int i = 0;
int count = 0;
for (i = 101; i <= 200; i=i+2)
{
int j = 0;
int flag = 1;
for (j = 2; j <=sqrt(i); j++)
{
if (i % j == 0)
{
flag =0;
break;
}
}
if (flag == 1)
{
printf("%d是素数\n",i);
count++;
}
}
printf("素数有%d个",count);
return 0;
}
总结:学会啦把,记着点赞哦!!!
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-10-17,如有侵权请联系 cloudcommunity@tencent 删除breakcaseint程序语法本文标签: 还不会分支与循环语句吗,这篇文章让你从从此掌握分支与循环语句!!!
版权声明:本文标题:还不会分支与循环语句吗,这篇文章让你从从此掌握分支与循环语句!!! 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1754745761a1705880.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论