A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 长厢厮守℡ 中级黑马   /  2015-12-5 22:03  /  716 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一.for循环
1.基本概念:
for(初始化表达式;条件表达式;循环后操作表达式){
     语句
     …

初始化表达式:在循环开始之前仅仅执行一次
条件表达式:在每一次循环开始的时候都会执行条件表达式,若成立就执行循环体中的语句,若不成立则退出循环
循环后操作表达式:当每一次循环结束的时候都会执行循环后操作表达式
代码演示:
#include <stdio.h>
int main(int argc, const char *argv[]{
   for(int i=0;i<5;i++){
      printf("i=%d\n",i);
    }
   return 0;
}
2.for循环的注意点
1.for()小括号后面不能直接写分号
2.作用域紊乱:如果想在循环体中定义变量,一定要加{}

3.for循环的作用域
1.在for()小括号中定义的变量,不可以在外部被访问
2.在for循环体中定义的变量,不可以在小括号中被访问
      
二.while语句
1.基本概念
While(条件表达式){
     语句;
      …
  }
判断条件表达式是否成立,如果成立就执行大括号中的语句,执行完毕之后,返回条件表达式,再次判断,若继续成立,则重复执行大括号中的语句,以此类推,直到条件表达式不成立。
2.while 注意点
(1)while()括号后面不要加分号,因为分号也代表一条语句,造成死循环
(2)注意不要混淆==和= ,在while括号中进行赋值运算,通常常量写在前面(2==a)
(3)While()内部定义的变量,在外部不可以访问。
(4)作用域不要混淆:在while内部定义的变量,一定要加{}
代码演示:
// 用户从键盘上录入正整数n,计算n的阶乘
#include <stdio.h>
int main(int argc, const char *argv[]{
    //提示用户录入
    printf("请输入一个正整数\n");
    //接收用户录入
    int n;
    scanf("%d",&n);
    //计算阶乘
    //定义循环控制变量
    int i = 1;
    // 定义一个变量记录每次循环的结果
    int factorial;
    while(i<=n){
     factorial*=i;
     i++;
    }
    printf("n!=%d",factorial);

    return 0;
}
三.自己的理解
1.for循环的优点
(1)不容易出错
(2)更加简洁,可读性更好
(3)当整个循环结束的时候,还需要使用循环控制变量的时候就使用while语句,因为for()小括号中定义的变量,不可以被{}中的代码块访问
2.如何写一个循环
(1)确定需要重复执行的操作
(2)确定约束条件
(3)定义循环控制变量
(4)确定循环执行条件
(5)在循环中改变循环控制变量的值
四.两个关键字
break:1.用在switch语句中,用来结束switch语句
     2.用在循环结构中,用来结束当前循环
continue:1.只能用在循环结构中
        2.跳过continue后面的语句,进入下一次条件判断
五.循环嵌套练习
for嵌套规律:总执行次数=外层循环次数*内层循环次数
             内层循环初始化表达式的值随着外层循环控制变量的改变而改变
练习1.  for循环嵌套
打印图形
*
**
***
****
#include <stdio.h>
int main(int argc, const char *argv[]{
    for(int i=0;i<4;i++){//外层循环控制行(需要打印几行)
        for(int j=0;j<=i;j++){//内层循环控制列(每行打印几个)
           printf("*");
         }
          printf("\n");
     }

  return 0;
}
练习2  if循环嵌套
// 用户从键盘上录入正整数n,计算n的阶乘
#include <stdio.h>
int main(int argc, const char *argv[]{
    //提示用户录入
    printf("请输入一个正整数\n");
    //接收用户录入
    int n;
    scanf("%d",&n);
    //计算阶乘
    //定义循环控制变量
    int i = 1;
    // 定义一个变量记录每次循环的结果
    int factorial;
    while(i<=n){
     factorial*=i;
     i++;
    }
    printf("n!=%d",factorial);

    return 0;

}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马