Java教程

Java基础学习:流程控制03

本文主要是介绍Java基础学习:流程控制03,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java基础学习:流程控制03

  • 循环结构:

    • 相同的事情执行多次,就是循环结构;

       

    • while循环:

      • while循环是最基本的循环,它的结构为:

        while(布尔表达式){
            //循环内容
        }
        ​
        //1,只要布尔表达式为true,循环就会一直执行下去
        //2,我们大多数情况是让循环停止下来的,我们需要一个让表达式失效的方式来结束循环
        //3,少部分情况需要循环一直执行,比如服务器的请求响应监听等
        //4,循环条件一直为true就会造成死循环,我们正常的业务编程中应该尽量避免死循环,会影响程序性能
        //5,思考:1+2+3....+100=?
      • 代码案例:

        public class WhileDemo01 {
            public static void main(String[] args) {
                //输出1-100
                int i=0;
        ​
                while (i<100){
                    i++;
                    System.out.println(i);
                }
            }
        }
      • 代码案例2:重点

        public class WhileDemo03 {
            public static void main(String[] args) {
                //计算:1+2+3+...+100
        ​
                int i=0;
                int sum=0;
                while (i<=100){
                    sum=sum+i;
                    i++;//一定要记得改变布尔表达式的值,使循环停止
                }
                System.out.println(sum);//5050
        ​
            }
        }
    • do..while循环:

      • 对于while语句而言,如果不满足条件,则不能进入循环;但有的时候我们需要即使不满足条件,也至少执行一次;

      • do..while循环和while循环相似,不同的是,do..while循环至少会执行一次;

        do{
            //代码语句
            
        }while(布尔表达式);
        ​
      • while和do..while的区别:

        • while先判断后执行,do while是先执行后判断;

        • do while总是保证循环体至少执行一次,这是他们的主要区别;

      • 代码案例:

        public class DoWhileDemo01 {
            public static void main(String[] args) {
                //计算1+2+3....+100
        ​
                int i=0;
                int sum=0;
        ​
                do{
                    //循环体
                    sum=sum+i;
                    i++;//改变布尔值,让循环停下来;
                }while (i<=100);
                System.out.println(sum);
            }
        }
      • 代码:while和do..while的区别

        public class DoWhileDemo02 {
            public static void main(String[] args) {
                //对比while和do while
                int a=0;
                while (a>0){
                    System.out.println(a);
                }
        ​
                System.out.println("===============");//分割线
        ​
                do{
                    System.out.println(a);
                }while (a>0);
        ​
            }
        }
    • for循环:

      • 虽然所有循环结构都可以用while或者do while表示,但是Java提供了另一种语句:for 循环;使得循环结构更加简单;

      • for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构;

      • for循环执行次数是在执行前就确定的;

        //语法:
        for(初始化;布尔表达式;更新){
            //循环代码块
        }
      • 注意:

        public class ForDemo01 {
            public static void main(String[] args) {
                int a=1;//初始化条件
        ​
                while(a<=100){//条件判断
                    //循环体
                    System.out.println(a);
                    a+=2;//迭代
                }
                System.out.println("呵呵呵呵");
                //初始化条件//条件判断//迭代
                for(int i=1;i<=100;i++){
                    System.out.println(i);
                }
                System.out.println("for循环结束");
                
                
                //IDEA快捷键:100.for  回车
                for (int i = 0; i < 100; i++) {
                    
                }
        ​
                /**
                 * 关于for循环,有以下几点说明:
                 *
                 * 最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空           语句
                 * 然后,检测布尔表达式的值,如果为true,循环体被执行,如果为false,循环终止,开始执           行循环体后面的语句
                 * 执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)
                 * 再次检测布尔表达式,循环执行上面的过程
                 */
                
                //死循环的写法
                for (; ; ) {
        ​
                }
            }
        }

         

      • 代码例子:计算0到100之间的奇数和偶数的和

        public class ForDemo02 {
            public static void main(String[] args) {
                //0-100之间的奇数和偶数
                
                int oddSum=0;
                int evenSum=0;
        ​
                for (int i = 0; i <= 100; i++) {
                    if(i%2!=0){//模运算,不等于0,就是奇数
                        evenSum+=i;//注意+=的学习
                    }else{
                        oddSum+=i;
                    }
                }
                System.out.println("奇数和:"+evenSum);
                System.out.println("偶数和:"+oddSum);
            }
        }
        ​
      • 代码例子:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个

        public class ForDemo03 {
            public static void main(String[] args) {
                //用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
        ​
                //while循环
                int i=1;
                int j=0;//计数用的变量
                while(i<1000){
                    if(i%5==0){//能被5整除
                        if(j<3){
                           // System.out.print(i+" ");
                            System.out.print(i+" \t");//  \t转义字符
                            j++;
                        }else{
                            System.out.println();//不打印,只是为了换行
                            j=0;
                        }
                    }
                    i++;
                }
        ​
        ​
                //for循环实现:k,k1
                for (int k = 1,k1=0; k <= 1000; k++) {
                    if(k%5==0){
                        if(k1<3){
                            System.out.print(k+" ");
                            k1++;
                        }else {
                            System.out.println();
                            k1=0;//切记,换行后,要改变条件变量;//同时学会DEBUG调试
                        }
                    }
                }
                System.out.println("程序结束");
        ​
        ​
                //优化代码:\t 制表符   \n换行   %模运算
                for (int i1 = 1; i1 <= 1000; i1++) {
                    //模运算
                    if(i1%5==0){
                        System.out.print(i1+"\t");
                    }
                    if(i1%(5*3)==0){//换行:每行3个,最大就是i1*3
                        System.out.print("\n");
                    }
                }
            }
        ​
        }
      • 代码例子:打印九九乘法表:

        public class ForDemo04 {
            public static void main(String[] args) {
                //打印九九乘法表
                /**
                 * 思路:
                 * 1,先画出来大概模型:
                 * 第一行:1*1=1
                 * 第二行:2*1=2 2*2=4
                 * 第三行:3*1=3 3*2=6 3*3=9
                 *
                 * 2,按行打印:2个变量:所有要定义2个变量:i控制行,j控制列
                 * 3,行再变,列也再变,所有需要循环嵌套
                 */
                for (int i = 1; i < 10; i++) {
                    for(int j=1;j<=i;j++){
                        //打印
                        System.out.print(i+"*"+j+"="+i*j+"\t");//怎么换行
                        if(j==i){
                            //换行
                            System.out.print("\n");
                        }
                    }
                }
            }
        }

         

    • 在Java5中引入了一种主要用于数组的增强型for循环:

      • 主要是用来遍历数组和对象的;

      • Java5引入了一种主要用于数组或集合的增强型for循环;

        //语法
        for(声明语句:表达式){
            //循环代码块;
        }
      • 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配,其作用域限定在循环代码块,其值与此时数组元素的值相等

      • 表达式:表达式是要访问的数组名,或者是返回值为数组的方法

        代码例子:

        public class ForDemo06 {
            public static void main(String[] args) {
                //增强型For循环:主要用于遍历数组或对象
        ​
                int[] numbers={10,20,30,40};//定义了一个数组
        ​
                for(int i=0;i<4;i++){
                    System.out.println(numbers[i]);
                }
                System.out.println("----------------------");
        ​
                //遍历数组的元素
                for(int x:numbers){
                    System.out.println(x);
                }
        ​
            }
        }

         

      •  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

这篇关于Java基础学习:流程控制03的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!