流程控制(二)(Day7)

一、循环:
   需要重复做的事情 
   
C语言提供的循环语句:
goto
while 
do-while 
for 

(1)****goto //可以构造循环 ,本身并不是循环语句
语法格式:
goto 语句标号; //标签 

注:
  1.禁止使用 
   //破坏了c语言的结构化 
  2.慎用 
  
实现1 ~ 100求和 
循环:
//1.初始条件 
//2.循环体  
    //重复执行的部分 
//3.结束条件 
//4.使循环趋于结束的操作(语句)


//1.初始条件 
    int sum;
    int i = 0; //变量
//2.循环体  
    //重复执行的部分 
     sum = sum + i;
    sum1 = 1 + 2
    sum2 = sum1 + 3
    sum3 = sum2 + 4
    sum4 = sum3 + 5
    ......    
    sum = 1;
    sum = sum + 2;
    sum = sum + 3;
    sum = sum + 4;
    sum = sum + 5; // sum = sum + i;
         
//3.结束条件 
   i 走到 100 
//4.使循环趋于结束的操作(语句)
    i++ 
 

(2)****while语句:
语法:
while (表达式)
{
    语句;
}

语义:
当 表达式 判断 为真?
此时执行 语句 ,
语句执行完成后,继续 表达式 判断
如果 为真 
继续 执行 语句,
直到,表达式判断为假,while结束(循环结束)

注意:
   语法 while后面,不要加分号 //除非就是要写一个空语句 


   
练习:
   输出所有的水仙花数。---- 三位数
   
   
   100~999 //
  eg:
  153 <=> 1*1*1 + 5*5*5 + 3*3*3
  每个位上的数字的立方和 等于 这个数字本身 
  
  153 //拆出 个 十 百 位上的数字 
      //算立方和 
      //判断一下与原数的关系 
      
  //思路:
   step1: 
     准备初始条件 
     int i = 100;
     
   step2:
     实现循环 
     while ()
     {
        //循环过程中要对i代表的数字进行拆分,计算和判断
        //1.拆出 个 十 百 
        //2.计算立方和 并 判断 
        //相等则打印
        //不相等继续判断下一个数字
        //直至循环结束
     }


     
(3)****do-while
while (表达式)
{
  语句;
}

语法:
do
{
  循环体语句;
}while (表达式);

语义:
 先执行 循环体语句,
 再判断 表达式 
 
 真,继续执行 循环体语句
 假,do-while结束,
 程序继续往下
 
语法:
   do-while中,while后面 有分号

区别:
  1.逻辑上区别 
    while     --先判断 后执行    
    do-while  --先执行 后判断   //循环体始终都会被执行到,最少是一次 
    
例子:
    
开机自检 
do{
   检测cpu
   检测硬盘
   检测内存//问题?
}while (?ok);


(4)****for 循环:
语法:
for( 表达式 1; 表达式 2; 表达式 3) 
{
  语句
}  

语义:
s1 首先,求解表达式1, 
s2 判断 表达式2 
  真 
   执行 语句
s3 继续 求解 表达式3
   回到 s2 继续执行 
直到   表达式2 为假
for语句结束


for(1; 2; 4) 
{
   3
}  
1->2->3->4->2->3-4

理解:
for( 初始条件;循环(结束)条件;使循环趋于结束的语句)
{
   语句; //循环体 
}

注意:
  1.表达式1 只会被执行一次 
  2.表达式1,2,3之间分号隔开 
  3.注意for语句后面,没有分号 


    
作业:
   打印1000以内的回文数。
   回文 
   
   121 //
   
   123 
   1
   2
   3
   321 == 123? 
   23
   1
   
   k = 0;
   m = 123;
   n = 0;
   
   k = m % 10; //3 2 1 
   n = n * 10 + k; //n = 3  n = 3*10+2=32 n=32*10+1 = 321
   m = m / 10; //12 1   
   
 


(5)****break 语句 和 continue 语句:

break 语句: 
     1.switch语句 
     2.循环中 
     
     含义: 表示跳出 本层循环 (结束了本层循环)
     
continue:
    含义:  结束本次循环,继续下一次循环
    
    

    

练习:
    从键盘输入一个数,判断是不是素数? 
//    质数
 
   所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数。
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;
否则称为合数(规定1既不是质数也不是合数)。
   


 打印100内所有素数. 

二、总练习题

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值