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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wenhb 中级黑马   /  2018-1-25 20:20  /  1627 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

循环

1)循环:循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
2)循环语句的组成
初始化语句:一条或者多条语句,这些语句完成一些初始化操作。
判断条件语句:这是一个boolean 表达式,这个表达式能决定是否执行循环体。
循环体语句:这个部分是循环体语句,也就是我们要多次做的事情。
控制条件语句:这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束
3)循环结构
(1)for:应用率最高,固定次数循环
语法:for(初始化语句;判断条件语句;控制条件语句) {
         循环体语句;
    }


1.求出1-100之间偶数和
[Java] 纯文本查看 复制代码

/*
  需求:
    A:求1-100之和。
    B:求出1-100之间偶数和
*/
class ForTest1 {
  public static void main(String[] args) {
    //求1-100之和。
    int sum1 = 0;
     
    for(int x=1; x<=100; x++) {
      sum1 +=x;
    }
     
    System.out.println("1-100之和是:"+sum1);
    System.out.println("------------------");
     
    //求出1-100之间偶数和
    //方式1
    int sum2 = 0;
     
    for(int x=1; x<=100; x++) {
      if(x%2 == 0) {
        sum2 += x;
      }
    }
     
    System.out.println("1-100偶数之和是:"+sum2);
    System.out.println("------------------");
     
    //方式2
    int sum3 = 0;
     
    for(int x=0; x<=100; x+=2) {
        sum3 += x;
    }
     
    System.out.println("1-100偶数之和是:"+sum3);
    System.out.println("------------------");
  }
}

2.求5的阶乘
[Java] 纯文本查看 复制代码
/*
  需求:求5的阶乘。
   
  什么是阶乘呢?
    n! = n*(n-1)! 规则
    n! = n*(n-1)*(n-2)*...*3*2*1
     
  求和思想。
  求阶乘思想。
*/
class ForTest2 {
  public static void main(String[] args) {
    //定义最终结果变量
    int jc = 1;
     
    //这里的x其实可以直接从2开始
    //for(int x=1; x<=5; x++) 
     
    for(int x=2; x<=5; x++) {
      jc *=x;
    }
     
    System.out.println("1-5的阶乘是:"+jc);
  }
}

(2)while:先判断后执行,有可能一次都不执行

语法:
初始化语句;
   while(判断条件语句) {
         循环体语句;
         控制条件语句;
    }

例如:我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
[Java] 纯文本查看 复制代码
/*
  我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。
  请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
 
  分析:
    A:定义一个统计变量,默认值是0
    B:最高山峰是珠穆朗玛峰:8848m这是最终的厚度
     我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度
    C:我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
     折叠一次有什么变化呢?就是厚度是以前的2倍。
    D:只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++
    E:输出统计变量。
*/
 
class WhileTest01 {
  public static void main(String[] args) {
    //定义一个统计变量,默认值是0
    int count = 0;
     
    //最高山峰是珠穆朗玛峰:8848m这是最终的厚度
    //我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度
    //为了简单,我把0.01变成1,同理8848就变成了884800
    int end = 884800;
    int start = 1;
     
    while(start<end) {
      //只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++
      count++;
       
      //折叠一次有什么变化呢?就是厚度是以前的2倍。
      start *= 2;
       
      System.out.println("第"+count+"次厚度是"+start);
    }
     
    //输出统计变量。
    System.out.println("要叠"+count+"次");
  }
}

  (3)do...while:先执行后判断,至少执行一次   要素1与要素3相同时,首选do...while
语法:
初始化语句;
do {
循环体语句;
控制条件语句;
} while((判断条件语句);

  • 写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环
  • break 跳出单层循环continue 跳出一次循环,进入下一次的执行;return 返回
9. 循环的嵌套要点:
  • 循环中套循环,一般多行多列时使用,外层控制行,内存控制列
  • 执行规则:外层循环走一次,内层循环走所有次
  •   建议:嵌套的层数越少越好,能一层就不用两层,能两层就不用三层   若业务必须要通过三层以上的循环才能解决,说明设计有问题
  •   break只能跳出一层循环
案例代码:
请输出一个4行5列的星星(*)图案:
[Java] 纯文本查看 复制代码
/*
  需求:请输出下列的形状
    *
    **
    ***
    ****
    *****
     提示:外循环控制行数,内循环控制列数
*/
class ForForTest01 {
  public static void main(String[] args) {
    //通过简单的观察,我们看到这是一个行是5,列数是变化的形状
    //我们先打印出一个5行5列的形状
  for(int x=0; x<5; x++) {
      for(int y=0; y<=x; y++) {
        System.out.print("*");
      }
      System.out.println();
    }
  }

在控制台输出九九乘法表:
注意:
    '\x' x表示任意,这种做法叫转移字符。
     
    '\t'  一个制表符的位置(tabtab键)
    '\r'  回车
    '\n'  换行
*/
class ForForTest02 {
  public static void main(String[] args) {
    for(int x=1; x<=9; x++) {
      for(int y=1; y<=x; y++) {
        System.out.print(y+"*"+x+"="+y*x+"\t");
      }
      System.out.println();
    }
  }


11 个回复

倒序浏览
虽然看不懂,但是厉害了我的哥
回复 使用道具 举报
棒棒哒 ..............
回复 使用道具 举报
感谢分享.............
回复 使用道具 举报
不错, 不错 ...........
回复 使用道具 举报
666666666666666666
回复 使用道具 举报
不错, 不错 ...........
回复 使用道具 举报
666666666666666666
回复 使用道具 举报
感谢分享.............
回复 使用道具 举报
666666666666666666
回复 使用道具 举报
棒棒哒 ..............
回复 使用道具 举报
666666666666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马