Java(三) 循环结构

 
循环结构:
1.for循环:
 
格式: for(初始化语句;循环判断语句;循环后的步进语句){
                循环体;
         }
循环执行流程:
    1.执行初始化语句    [只执行一次]
    2.执行循环判断语句
        false ->    跳出循环体(结束)
        true  ->    执行循环体(继续)   
    3.执行循环体
    4.执行循环后的步进语句
    5.执行判断条件语句
        false -> 结束循环
        true  -> 继续循环
   .....
 
2.for循环练习:
    
(1)求1-5的数据和
        int sum= 0;
           for(int i =1;i<=5;i++){
               sum+=i;
                /*
                 * 计数器思想
                 * 当  sum= 0 + i = 1   sum= 1
                 *               1          2              3
                 *               3          3              6
                 *               6          4              10
                 *               10         5              15
                 * */
           }
      Q:sum为什么定义for循环的外面?
      A:如果定义在for循环中,那么每一次进入循环体,变量都会重新重置为0,运算的结果就会出错.并且如果for循环外部调用时,会报错,for循环结束sum也会消失
 
  (2)求1-100的偶数之和
        int sum = 0;
            for(int i=0;i<=100;i+=2){
                    sum+=i;
                }
 
 (3)统计100--999的水仙花数
               int count = 0;
           int i =0;
           for(i=100;i<=999;i++){    //遍历循环
                int ge = i % 10;       //求个位的数字
                int shi = i / 10 % 10; //求十位的数字
                int bai = i / 100;       //求百位的数字
                if((ge * ge * ge + shi * shi * shi + bai * bai *  bai) == i){//如果每一位的立方和相加的结果还等于该数本身就是水仙花数
                     count++;    //记录进来的值(水仙花)
                     System.out.println(i);
                }
           }
                    System.out.println("一共有:"+count);
 
(4)循环嵌套输入99乘法口诀表
    for (int i = 1; i <= 9; i++) {//控制行
                for (int j = 1; j <= i; j++) {//控制列
                     System.out.print(j + "*" + i + "=" + (j *  i) + "\t");//输出,不换行 \t空格
                }
                System.out.println();//换行
           }
 
3.while循环
 
格式:
 
    基本格式:                        完整格式:
                                        初始化语句;
    while(判断条件语句){              while(判断条件语句){
        循环体;                            循环体;
    }                                      循环后的步进语句;
                                        }
执行流程:
    1.初始化语句,只执行一次.
    2.执行判断条件语句.
        false -> 结束循环
        true  -> 执行循环体
    3. 执行循环后的步进语句
    4. 判断条件语句
         false -> 结束循环
         true  -> 继续循环
         ...
 

 

4.while循环练习
      
(1)while求1-100之间数据的和
        int sum = 0;
        int i = 1;
        while(i<=100){
            sum += i;
            sum++;
        }

 

      (2)使用whlie循环打印一个四行五列的星星      [循环嵌套] 外循环控制的是(行), 内循环控制的是(列)
           int i = 1;
           while (i <= 5) {
                int j = 0;
                while (j <= 4) {
                     System.out.print("*");
                     j++;
                }
                i++;
                System.out.println();
           }
 
5.do..while
 
格式:
    初始化语句;
        do {
            循环体语句;
            控制条件语句;
        }while(判断条件语句);
 
执行流程:
    1. 初始化语句;
    2. 循环体语句;
    3. 控制条件语句;
    4. 判断条件语句
        false:结束循环
        true:继续执行循环
            特点: do..while循环,无论条件是否满足,都会至少执行'一次.
 
6.三种循环的区别(总结)
 
1.for循环,while循环和do..while循环的区别
    for循环和while循环,只要满足判断语句循环,才会执行循环体
    do..while循环无论条件是否成立都会执行一次\
2.for和while的区别:
    for循环在内部定义的变量,在循环结束后,变量会被释放掉
    while,在循环结束后,可以继续使用控制循环的那个变量
 
7.思考
 
    
1.for循环的初始化表达式能否定义在for循环外面
            int i = 1;
            for(; i <= 5; i++){
                System.out.println("HelloWorld");
            }
            System.out.println(i);
        
    2.for循环的初始化表达式和判断条件以及控制循环语句能否有多条??
        for(int i = 0, j = 100; (i <= 100) && (j >= 0); i++,j--){
            System.out.println(i+","+j);    
        }
    3.无限循环(死循环)
        for:     for(;;){}
        while:    while(true){}
 
8.跳转控制语句break的概述和使用
 
    1: break可以用于结束循环,还可以用于结束switch语句
        eg: swith(){
                case 1:
                    break;
                    ...
            }
    2:一般都是在循环当中,达成某种条件,使用break语句结束循环.
            public static void main(String[] args) {
            lo:while(true){
                for(int i = 1; i <= 10; i++){
                    if(i == 3){
                        break lo;
                    }
                    System.out.println("HelloWorld");
                }
                System.out.println("------------");
            }
        }
 
9.跳转控制语句continue的概述和使用
 
1: 终止本次循环,继续下次循环(跳过)
2: continue只能应用在循环当中
           for (int i = 1; i <= 20; i++) {
                if (i == 4 || i == 18) { //当 i = 4 or 18是,跳过.
                     continue;
                }
                System.out.println("第" + i + "层到了");
           }
 
 
10.Random
 
  1.Random用于生产随机数
    2.
            1. 导入包
                    import java.util.Random;
            2. 创建Random对象
                    Random r = new Random();
            3. 调用nextInt功能产生随机数
                    int num = r.nextInt(100) + 1;  ->  r.nextInt(100); 是0-99的数值  | r.nextInt(100)+1; 是1-100的数值
 
 (1)系统产生一个1-100之间的随机数,请猜出这个数据是多少。
// 1. 创建Random对象用于生成随机数
        Random r = new Random();
        int num = r.nextInt(100) + 1;
        
        // 2. 创建键盘录入对象, 用于实现用户的交互
        Scanner sc = new Scanner(System.in);
        
        // 3. 定义无限循环,不断的接受键盘录入的数据
        while(true){
            System.out.println("请输入您要猜的数:");
            int content = sc.nextInt();
            // 4. 拿着用户输入的数据跟心里想的数据进行比较, 然后给予提示
            if(content > num){
                System.out.println("大了");
            }else if(content < num){
                System.out.println("小了");
            }else {
                System.out.println("中了");
                break;
            }

 

 
                                                                       2019-03-04
posted @ 2019-03-04 15:40  ProdQi  阅读(192)  评论(0)    收藏  举报