黑马程序员技术交流社区

标题: [重庆]循环小结 [打印本页]

作者: wenhb    时间: 2018-1-25 20:20
标题: [重庆]循环小结
循环

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((判断条件语句);

9. 循环的嵌套要点:
案例代码:
请输出一个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();
    }
  }



作者: xiongliu    时间: 2018-1-26 11:00
虽然看不懂,但是厉害了我的哥
作者: 零度☆黎明    时间: 2018-1-27 11:12
棒棒哒 ..............
作者: 殷凯老师    时间: 2018-1-27 20:25
感谢分享.............
作者: 殷凯老师    时间: 2018-1-29 11:56
不错, 不错 ...........
作者: mydorling11    时间: 2018-1-29 14:48
666666666666666666
作者: mydorling11    时间: 2018-1-29 15:26
不错, 不错 ...........
作者: mydorling11    时间: 2018-1-29 15:30
666666666666666666
作者: mydorling11    时间: 2018-1-29 15:43
感谢分享.............
作者: mydorling11    时间: 2018-1-29 15:48
666666666666666666
作者: mydorling11    时间: 2018-1-29 15:51
棒棒哒 ..............
作者: mydorling11    时间: 2018-1-29 15:54
666666666666666666




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2