首页 > 其他 > 详细

循环分支语句

时间:2021-04-08 23:54:32      阅读:38      评论:0      收藏:0      [点我收藏+]

循环语句:

1:for循环

格式:

for(语句1;判断语句;语句2) {循环体;}

执行顺序: 先执行语句一,接着进入判断语句,若不满足判断语句则不执行语句二直接退出循环.  若满足判断语句, 则执行语句二,再接着进行判断语句.直至不满足判断语句退出循环.

特点: 语句一只执行一次 , for 循环中的语句都可以为空(此时为一个死循环),但是格式(; ; ;)不能少.同时要注意判断语句中的变量,要在语句二中进行自增或自减.

死循环格式:

for(语句一; ; 语句二){循环体;}//注意";"不能少.

 

2:while循环

格式:

while(判断语句)
{
     循环体;           
}

执行顺序:先执行判断语句,若为真则将进入循环体,每执行一次循环体需要进行一次判断,不满足则退出循环.

死循环格式: 

while(1){循环体;}

 

3: do while循环

格式:

do
{
    循环体;
}while(判断语句)

特点: 先进入循环体,再进行判断正好和while 循环相反.

死循环格式:

do
{循环体;}
while(1);

分支语句:

1:if  else 分支语句

格式:

if(判断语句)
{ 语句1;}
else
{ 语句2;}

进入分支语句时看是否满足判断语句,若满足则执行语句一,否则执行语句二.

注: 当多个if else 语句嵌套时,else 总是向上和未和else结合的if相结合

2:switch 分支语句

格式:

switch (整型变量表达式)//switch的参数类型不能float,double等类型,只能为整型类型.
{
case 常量1 : 语句1; break;//break用于跳出switch语句.
case 常量2 : 语句2; break;//case的标签必须为常量表达式,且必须唯一
                          //如  case a>b: ... (error,不是常量表达式)
                          // case 常量1:...
                          // case 常量1:..(将报错,常量表达式不唯一)
case 常量3 : 语句3; break;
...
default : 语句n;break;//若都不符合则进入default.

}

整型变量表达式满足常量 i ,则执行 语句 i,若全都不满足则进入default,执行语句n.

注:因为switch要求参数类型只能为整型类型,所以极大的限制了switch的使用情况.当数据类型不满足时需要使用if语句.

 

趣味练习:定义一个二维数组,通过循环和分支语句,实现在屏幕上打印0-9.

代码如下:

#include<stdio.h>
#include<assert.h>
void
Init_ar(int br[5][3],int row ,int col,int*cr)//利用循环对数组进行赋值 { assert(br != nullptr); int t = 0; for (int i = 0; i < row; i++)// { for (int j = 0; j < col; j++) { if (cr[t]==1)//通过判断是否为1,来对数组元素进行赋值操作 { br[i][j] = *; t++; } else { br[i][j] = ; t++; } } } } void Print_ar(const int br[5][3], int row, int col)//利用循环打印二维数组 { assert(br != nullptr); for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { printf("%c", br[i][j]);//打印数组元素对应的字符 } printf("\n");//控制换行 } printf("\n"); } int main() { int ar[5][3] = {}; int cr0[] = { 1,1,1,1,0,1,1,0,1,1,0,1,1,1,1 };//通过指定0和1,打印出我们想要的效果. int cr1[] = { 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 }; int cr2[] = { 1,1,1,0,0,1,1,1,1,1,0,0,1,1,1 }; int cr3[] = { 1,1,1,0,0,1,1,1,1,0,0,1,1,1,1 }; int cr4[] = { 1,0,1,1,0,1,1,1,1,0,0,1,0,0,1 }; int cr5[] = { 1,1,1,1,0,0,1,1,1,0,0,1,1,1,1 }; int cr6[] = { 1,1,1,1,0,0,1,1,1,1,0,1,1,1,1 }; int cr7[] = { 1,1,1,0,0,1,0,0,1,0,0,1,0,0,1 }; int cr8[] = { 1,1,1,1,0,1,1,1,1,1,0,1,1,1,1 }; int cr9[] = { 1,1,1,1,0,1,1,1,1,0,0,1,1,1,1 }; int n = 0; printf("input a number(0-9):");//输入想打印的数字 scanf_s("%d", &n); switch (n)//switch 多分支语句 { case 0:Init_ar(ar, 5, 3, cr0); Print_ar(ar, 5, 3); break; case 1:Init_ar(ar, 5, 3, cr1); Print_ar(ar, 5, 3); break; case 2:Init_ar(ar, 5, 3, cr2); Print_ar(ar, 5, 3); break; case 3:Init_ar(ar, 5, 3, cr3); Print_ar(ar, 5, 3); break; case 4:Init_ar(ar, 5, 3, cr4); Print_ar(ar, 5, 3); break; case 5:Init_ar(ar, 5, 3, cr5); Print_ar(ar, 5, 3); break; case 6:Init_ar(ar, 5, 3, cr6); Print_ar(ar, 5, 3); break; case 7:Init_ar(ar, 5, 3, cr7); Print_ar(ar, 5, 3); break; case 8:Init_ar(ar, 5, 3, cr8); Print_ar(ar, 5, 3); break; case 9:Init_ar(ar, 5, 3, cr9); Print_ar(ar, 5, 3); break; default: return -1; } return 0; }

 

运行结果:

输入5: 

 技术分享图片

 

循环分支语句

原文:https://www.cnblogs.com/1651472192-wz/p/14632116.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!