记录_[流程控制语句-用法和题型的总结]

流程控制语句

1. 控制结构 (3种)

顺序 选择 循环

流程图的图框

2. 几种语句 (7个)

• 无条件的执行一次(一般语句)
• 无条件的重复执行(无穷循环)
• 有条件的执行一次(if/ if-else语句)
• 选择性的执行一次(switch语句)
• 有条件的重复执行(while 语句)
• 计次型的重复执行(for 语句)
• 至少做一次的有条件的重复执行(do-while 语句)

3.中止重复执行语句 (2个)

• 中断目前所属重复执行语句(break 语句)满足if条件,只结束一层 for,直接结束for循环
• 在重复执行后,跳过后面的程序区块(continue 语句)满足if条件,跳过本层for,继续for循环

4.用法&应用举例

♦ if 语句:

if ( 表示式 ) { 程序片段; }

如果「表示式」成立,就执行{ 程序片段 }

举例:
▪ 猜数字 ▪ 满额折扣计算 ▪ 三角形判断 ▪ 求几个变量最大值 ▪求中位数 ▪ 对几个变量排序/交换
♦ if-else 语句:(二选一的交叉路口)

if( 表示式 ) { 程序片段一 ; }
else { 程序片段二; }

如果「表示式」成立,就执行{ 程序片段一 }
如果「表示式」不成立,就执行{ 程序片段二 }

if( 表示式 ) {
{ 程序片段一; }

} else if( 表示式二 ) {
{ 程序片段二; }

} else if( 表示式三 ) {
{ 程序片段三; }


连续多个if互斥

举例:
▪ 成绩等级评定 ▪ 变量比大小求最值 ▪ 猜数字 ▪ 输入数字四则运算结果
♦ switch 语句:(多选一的路口)

switch( 整数值 ) {
case 整数常数值’:
 程序片段;
 break ;
case 整数常数值’:
 程序片段;
 break ;

 default;
 程序片段;
}
可指定多个不同case
在所有case都不符合时,执行default

举例:
▪ 成绩等级评定 ▪ ID查询
♦ while 语句:

while( 表示式 ) { 程序片段; }

当「表示式」成立,就执行{ 程序片段 }
在if-else语句外加入while语句,会至少执行一次(1次~无穷多次)
count=0, count=count+1作为计数器,输出计执行次数
计次count的值输出printf count的值,与count初值,count范围(大于或大于等于),和它们的前后顺序都有关 就看到底做了几次while

int count=1
while(count<=10){
 printf(%d\n",count);
 count=count+1;
}

举例:
▪ 印出N~M个数字
▪ 猜数字至少猜一次/数共猜了几次
▪ 求不定个正整数之和 sum=0 sum=sum+number / 平均数 average=(float)sum/number 要注意显性隐性转型 (number是输入的所以是不定个)
♦ do-while 语句:

do{
    程序片段;
}while( 表示式 )

当「表示式」成立,就执行{ 程序片段 }
先执行大括号( do里的程序片段 )一次,再看while*
do-while里加入switch语句,至少执行一次的选择性执行(一次)
表示式可以为不等于(id=!0),即为0时结束循环

举例:
▪ 猜数字至少猜一次 ▪ 输入商品编号显示总金额
♦ for 语句:

for( 初始式;条件式;循环式 ) { 程序片段; }

当「条件式」成立,执行{ 程序片段 },否则结束循环
执行循环式,返回上一步
与while的对比:
定义初始式
while( 条件式 ){
 程序片段;
 循环式;
}
计数器: for是用i,while是用count

举例:
▪ 印出N~M个数字
▪ 印出N~M之间的奇数 (count=count+2 / number=2*count+1 / if(count%2==1) 第一种也可用while
▪ 印出N~M之间的偶数 (count=count+2 / number=2*count / if(count%2==0)
▪ 印出N~M之间不是3的偶数 (count%3!=0)
▪ 印出等差数列
▪ 求连续个整数之和 sum=初值;sum=sum+i;i<N;i++
▪ 找出N以内所有正因数 N&number==0
▪ 找出N以内所有质数 法一:N&number==0 number of divisors(计数器)++ 当number of divisors=0时,没有一个number能整除它,就是质数 (法二:N%number= =0执行时,令isprime=0,当输出isprime=1,即没执行一次,为质数。
▪ 印出九九乘法表 两个for循环 印i*j=ij
▪ 用文字绘制横线,(空心) 长方形,三角形 ▪ 猜数字至少猜一次
▪ 找简易方程组的解 一个数确定了另一个数也就确定了
♦ break 语句:

for( number=1;number<=10;number++){
 if(number=5){
  break;
 }
 printf("%d\n",number);
}

运行结果: number:1,2,3,4,5 (只印到4)

当满足if条件,跳出这层的for循环,直接结束,且只结束一层

举例:
▪ 找上限内同时被3,5,7整除最大的
▪ 韩信点兵问题
♦ continue 语句:

for( number=1;number<=10;number++){
 if(number=5){
  continue;
 }
 printf("%d\n",number);
}
运行结果: number:1,2,3,4,5 6,7,8,9,10 (不印5)即 if(number!=5)

当满足if条件,跳过后面的程序,继续本层for循环

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值