zoukankan      html  css  js  c++  java
  • 循环语句

    一、for(){}

    基本结构:
        for( A ; B ; C ) {    D    }

    •  A 用来声明并初始化变量
    •  B 是一个逻辑表达式,用于决定循环是否执行
    •  C 通常被称作 迭代部分 或 递进部分,用于实现对控制循环的变量的增加或减少等操作
    •  D 表示循环体中要执行的语句 ( 就是要完成什么任务 )

     执行顺序:
        A ->  B ->  D -> C
        B -> D -> C
        ..............
        B

    public class Loop1 {
    
        public static void main(String[] args) {
            
            for ( int i = 0; i < 10 ; i++ ) {
                System.out.println( i );
            }
    
            System.out.println( "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~" );
    
            // 在 for 语句中声明并初始化的变量只能在 for 语句块内部使用
            for ( int i = 0 , j = 10 ; i < 10 && j > 0 ; i++  , j-- ) {
                System.out.println( "i = " + i + " , j = " + j );
            }
    
        }
    
    }

    二、while(){}

    while ( 判断 ) {
         循环语句
         迭代
    }

    public class Loop2 {
    
        public static void main(String[] args) {
    
            
            // while ( 判断 ) {
            //      循环语句
            //      迭代
            // }
    
            int i = 10 ; // 声明变量并初始化
            while ( i > 0 ) { // 在 while 语句中之后的 ( ) 内执行判断
                System.out.println( "i = " + i ); // 这个输出语句相当于循环要完成的操作
                i-- ; // 迭代部分 ( 实现变量的变化,比如 变量增长 或 减少 )
            }
    
            System.out.println( "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~" );
    
            int j = 0 ; // 初始化
            while( j++ < 10 ){ // 迭代 和 判断
                System.out.println( "j = " + j );  // 循环要完成的操作
            }
    
            System.out.println( "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~" );
    
            int a = 100 ;
            int b = 200 ;
            System.out.println( "a = " + a + " , b = " + b );
            while( a++ < b-- ); // 没有循环体
            System.out.println( "a = " + a + " , b = " + b );
            
        }
    
    }

    三、do{}while()

    1、基本结构
           do { } while () ;
           注意最后的分号
    2、while 循环 和 do...while 循环都可以在不明确循环次数的前提下完成循环操作
    3、while 循环会先执行 判断 ( 因为 while 关键字之后就是 逻辑判断表达式 )
    4、do...while 循环会首先执行 do 和 while 之间的代码,再执行之后才进行判断

    public class Loop3 {
    
        public static void main(String[] args) {
    
            // 创建一个用于读取用户输入数据的扫描器
            Scanner s = new Scanner( System.in );
    
            int x = -1 ; // 初始化
            do {
                System.out.println( "请输入 0 到 100 之间的数字:" );
                x = s.nextInt(); // 读取用户在控制台中输入的整数
                System.out.println( "您输入的是 " + x );
             } while ( x < 0 || x > 100 ) ;
    
            System.out.println( "输入正确" );
    
             s.close();
    
        }
    
    }

    四、continue  and  break

    1、continue 语句用于实现 略过 循环语句中 本轮操作的后续语句,直接进入下一轮操作
    2、continue 默认针对它所在的循环有效 ( 就是 离 continue 语句最近的循环 )
    3、break 语句用于跳出循环语句块 ( 整个循环会结束 )
    4、break 默认针对它所在的循环有效 ( 就是 离 break 语句最近的循环 )

    public class Loop6 {
    
        public static void main(String[] args) {
    
            for( int i = 1 ; i < 10 ; i++ ) {
                if( i == 2 ) {
                    // 略过本次循环后续语句直接进入下次
                    continue ; // 整个循环并没结束,而是略过本轮中后续操作直接进入下一轮操作
                }
                System.out.print( i + " " ); // 循环当中输出的内容不换行
            }
            System.out.println(); // 等到循环执行结束后再输出换行符
    
            System.out.println( "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~" );
    
            for( int i = 1 ; i < 10 ; i++ ) {
                if( i == 2 ) {
                    break ; // 跳出循环语句块,整个循环结束
                }
                System.out.print( i + " " ); // 循环当中输出的内容不换行
            }
            System.out.println(); // 等到循环执行结束后再输出换行符
    
            System.out.println( "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~" );
    
            for( int i = 1 ; i < 10 ; i++ ){
                System.out.print( i + ": " );
                for( int j = 1 ; j < 10 ; j++ ) {
                    if( i == 5 && j == 5 ) {
                        continue ;
                    }
                    System.out.print( j + " " );
                }
                System.out.println();
            }
    
            System.out.println( "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~" );
    
            for( int i = 1 ; i < 10 ; i++ ){
                System.out.print( i + ": " );
                for( int j = 1 ; j < 10 ; j++ ) {
                    if( i == 5 && j == 5 ) {
                        break ;
                    }
                    System.out.print( j + " " );
                }
                System.out.println();
            }
    
        }
    
    }

    五、outer  and  inner

    1、使用 标签(label)(outer,inner) 标识循环语句块
    2、在 continue 语句 和 break 语句中可以使用 标签( label ) 来指定针对那层循环

    public class Loop7 {
    
        public static void main(String[] args) {
    
            outer:for( int i = 1 ; i <= 5 ; i++ ){
                System.out.print( i + ": " );
                inner:for( int j = 1 ; j <= 5 ; j++ ) {
                    if( i == 3 && j == 3 ) {
                        continue inner ; // 在 continue 语句中可以使用 标签
                    }
                    System.out.print( j + " " );
                }
                System.out.println();
            }
    
            System.out.println( "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~" );
    
            outer:for( int i = 1 ; i <= 5 ; i++ ){
                System.out.print( i + ": " );
                inner:for( int j = 1 ; j <= 5 ; j++ ) {
                    if( i == 3 && j == 3 ) {
                        continue outer ; // 在 continue 语句中可以使用 标签
                    }
                    System.out.print( j + " " );
                }
                System.out.println();
            }
    
            System.out.println( "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~" );
    
            outer:for( int i = 1 ; i <= 5 ; i++ ){
                System.out.print( i + ": " );
                inner:for( int j = 1 ; j <= 5 ; j++ ) {
                    if( i == 3 && j == 3 ) {
                        break inner ; // 在 break 语句中可以使用 标签
                    }
                    System.out.print( j + " " );
                }
                System.out.println();
            }
    
            System.out.println( "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~" );
    
            outer:for( int i = 1 ; i <= 5 ; i++ ){
                System.out.print( i + ": " );
                inner:for( int j = 1 ; j <= 5 ; j++ ) {
                    if( i == 3 && j == 3 ) {
                        break outer ; // 在 break 语句中可以使用 标签
                    }
                    System.out.print( j + " " );
                }
                System.out.println();
            }
    
        }
    
    }

    六、十进制(正整数)转二进制

    除二取余,除尽为止,(余数)尾首相连

    public class Loop4 {
    
        public static void main(String[] args) {
    
            String s = "" ;
            s = "abc" ;
            System.out.println( "s : " + s );
            s =  "123" + s ; // 注意 s = "123" + s ; 与 s = s + "123" ; 的区别
            System.out.println( "s : " + s );
    
            System.out.println( "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~" );
    
            int x = 25 ;
            String binary = "" ;
            final int p = x ;
    
            while( x != 0 ){
                int y = x % 2 ; // 整除二取余数
                binary = y + binary ; // 这里的 + 相当于 字符串连接符
                // System.out.println( binary ); // 通过输出语句验证每次循环产生内容
                // 对 x 变量的取值整除二取商,并将商赋值到 x 变量中
                x /= 2 ; // x = x / 2 ;
                // System.out.println( x ); // 通过输出可以查看 x 变量中取值的变化过程
            }
    
            // System.out.println( "x = " + x ); // 验证 x 已经变成 0 ( 就是口诀中的 除尽为止 )
            System.out.println( p + " 的二进制形式是: " + binary );
    
            // 如果期望 二进制 形式 是 32 位,可以考虑在 二进制字符串前面补充 字符 0 
    
        }
    
    }

    七、十进制(正整数)转八进制

    除八取余,除尽为止,(余数)尾首相连

    public class Loop5 {
    
        public static void main(String[] args) {
    
           final int x = 100 ; // 需要转换的十进制正整数
           final int b = 8 ; // 基数
    
           String target = "" ; // 初始化
    
           /*
           int y = x ;  // 初始化
           while( y != 0 ) { // 判断
                int z = y % b ; // 循环需要完成的操作
                s = z + s ;  // 循环需要完成的操作
                y /= b ; // 迭代 ( 让控制循环的变量变起来 )
           }
           */
    
          for ( int y = x ; y != 0 ; y = y / b ) {
            target = ( y % b ) + target ; 
          }
    
          System.out.println( x + " 的 " + b + " 进制形式是 " + target );
    
        }
    
    }

    八、十进制(正整数)转十六进制

    public class Loop4 {
    
        public static void main(String[] args) {
    
            String s = "" ;
            String hex = "" ;
            int x = 100000 ;
            int p = x;
            while( x != 0 ){
                int y = x % 16 ; 
    
                switch (y){
                    case 10:
                        s = "A";
                        break;
                    case 11:
                        s = "B";
                        break;
                    case 12:
                        s = "C";
                        break;
                    case 13:
                        s = "D";
                        break;
                    case 14:
                        s = "E";
                        break;
                    case 15:
                        s = "F";
                        break;
                    default:
                        s = y + "";
                }
                hex = s + hex ;
                x /= 16 ;
            }
            System.out.println(  p + " 的十六进制形式是: " + hex );
    
        }
    
    }
  • 相关阅读:
    090828 H 小道理
    091031 T PowerShell Solution
    关注我们共有的家园,别让企鹅成为传说
    发布网站时自动切换connectionString
    bookmark: partitioned tables in sql server 2005
    it did suprise me a little bit..
    无法删除附加到事件上的匿名代理
    如何在自己工程项目中使用TouchJSON框架
    VMware 8安装苹果操作系统Mac OS X 10.7 Lion正式版
    Net线程间通信的异步机制
  • 原文地址:https://www.cnblogs.com/helloyuankun/p/12864187.html
Copyright © 2011-2022 走看看