zoukankan      html  css  js  c++  java
  • 第六章

     第六章

    for语法:

    for(表达式①;表达式②;表达式③){

           //④循环操作

    }

    表达式含义:

    表达式1:赋值语句, 它用来给循环变量赋初值 例如:int i = 1;

    表达式2:循环条件,一个关系表达式, 它决定什么时候退出循环 例如:i < 5;

    表达式3:变量迭代  例如: i++ 三个表达式均可省略,但分号不能省!!!!! 

    执行过程:

    1.表达式1

    2.判断表达式2,如果为true,执行循环操作,否则退出循环,第三步不执行

    3.循环操作执行完毕后,执行表达式3(迭代部分),改变循环变量值

    4.依次重复步骤2~3,直到退出循环    

     表达式2满足条件   

      if(表达式①;表达式②;④循环操作){  

     表达式③   

      }    

    执行流程:①---->②---->③---->④ --------------------------------------------------------------------------

    注意事项:

    for(;i<10;i++){    

      System.out.println("这是 "+i);

    }

    编译错误:

    变量 i 没有初始化

    --------------------------------------------------------------------------

    for(int i=0;;i++){  

         System.out.println("这是 "+i);

    }

    编译正确,但是缺少

    循环条件,造成死循环

    --------------------------------------------------------------------------

    for(int i=0;i<10;){      

      System.out.println("这是 "+i);   

       }

    i++;

    编译通过,但是循环变量的值无变化, 造成死循环

    省略表达式3,在循环体内应设法改 变循环变量的值以结束循环

    --------------------------------------------------------------------------

    for(;;){  

        System.out.println("这是测试");

    }

    表达式全省略,无条件判断,循环变量无改变,

    应在循环体内设法结束循环;

    否则会造成死循环

    --------------------------------------------------------------------------

    //break是结束整个循环体,continue是结束单次循环

    比方说:

    while(x++ < 10){

        if(x == 3){     

        break;   

      }    

    System.out.println("值:" + x);

    }

    结果是输出  1 2   就退出了整个while循环

    但是如果使用continue

    while(x++ < 10){    

    if(x == 3){       

      continue;    

    }    

    System.out.println("值:"+ x);

    }

    结果是:1 2 4 5 6 7 8 9 10  可见他仅仅是不输出3,因为他结束了本次循环

    当循环执行到break语句时,就退出整个循环,然后执行循环外的语句  改变程序控制流。

    当循环语句执行到continue时,当次循环结束,重新开始下一轮循环。如果已经是最后一轮循环了,那么这是的continue就与break效果一样了。

    到目前为止所学的循环结构有哪些?

    语法区别:

     while                       | do-while                     |    for

    while循环:              | do{                               | 

    for(初始化;条件;迭代){

    while(<条件>){                                    |                 //循环体  

    |  //循环体    

        //循环体                                        |                            }while(<条件>);   |  }   

                                     |                      |

    需要多次重复执行一个或多个任务的问题考虑使用循环来解决 无论哪一种循环结构,都有4个必不可少的部分:初始部分、循环条件、循环体、迭代部分

    执行顺序:

    while 循环:先判断,再执行

    do-while循环:先执行,再判断

    for循环:先判断,再执行

    适用情况: 循环次数确定的情况,通常选用for循环 循环次数不确定的情况,通常选用while或do-while循环

    for案例:

    /**

    *计算1到100的和

    */

    public class Summation {

        public static void main(String[] args) {   

          int sum = 0; //声明变量sum存放计算的和,赋初值为0   

          for(int i=1;i<=100;i++)      

           sum +=i;//等价于语句sum=sum+score  

           System.out.println("sum="+sum);    

    }

    }

    /**

    * 使用for 循环

     * 输入学生的5们功课,查询该学生的总成绩和平均分数

     */ import java.util.Scanner;

    public class AverageScores {

        public static void main(String[] args) {     

        int score;    //声明一个变量,取名为score,用来接收学生的成绩值    

         int sum= 0;    //声明一个变量,取名sum,用来存储学生的成绩和                  

          double avg =0.0;    //声明一个double类型的变量,用来接收计算出来的学生的平均分  

           Scanner sc = new Scanner(System.in);    //获取键盘输入    

         System.out.println("请输入学生的姓名:");   

          String name = sc.next();    //将获取的输入赋值给一个String类型的name变量      

       int i= 0;        //声明一个int类型的变量,赋初始值为0     

        for(;i<5;i++){    //循环5次录入成绩            

    System.out.println("请输入5门功课的第"+(i+1)+"门的成绩:");     

            score = sc.nextInt();    //录入成绩       

          sum += score;      //等价于语句

    sum=sum+score;           

      System.out.println(name+"的前"+(i+1)+"门功课的成绩和是:"+sum);         }      

          System.out.println(name+"的总成绩是:"+sum);   

          avg = sum/5;    //计算平均成绩        

    System.out.println(name+"的平均分是:"+avg);

        }

    变量为汉字

      /**   

       * 使用for 循环     

    * 输入学生的5们功课,查询该学生的总成绩和平均分数  

        */ import java.util.Scanner;

    public class 求学生的平均成绩 {    

    public static void main(String[] args) {   

          int 单科成绩;     

        int 总成绩= 0;       

      double 平均分 =0;    

         Scanner 键盘输入 = new Scanner(System.in);       

      System.out.println("请输入学生的姓名:");        

    String 学生姓名 = 键盘输入.next();        

    int i= 0;     

        for(;i<5;i++){     

            System.out.println("请输入5门功课的第"+(i+1)+"门的成绩:");     

            单科成绩 = 键盘输入.nextInt();   

              总成绩 += 单科成绩;        

         System.out.println(学生姓名+"的前"+(i+1)+"门功课的成绩和是:"+总成绩);     

        }      

          System.out.println(学生姓名+"的总成绩是:"+总成绩);  

           平均分 = 总成绩/5;      

       System.out.println(学生姓名+"的平均分是:"+平均分);   

      }

    }

  • 相关阅读:
    【java】定时任务@Scheduled
    20180513 实参 形参 数组
    20180513 实参 形参
    20180513 数组 实参 形参
    <转载>二维数组回形遍历
    20180318 代码错题(8)
    20180318 代码错题(7)
    20180318 代码错题(6)
    20180318 代码错题(5)
    20180318 bit置0
  • 原文地址:https://www.cnblogs.com/aaaaliling/p/7637642.html
Copyright © 2011-2022 走看看