zoukankan      html  css  js  c++  java
  • Java基础语法Day_02-03(数据类型、运算符、方法、循环结构)

    第5节 数据类型转换

      day02_01_数据类型转换_自动转换

      day02_02_数据类型转换_强制转换

      day02_03_数据类型转换_注意事项

      day02_04_ASCII编码表

    第6节 运算符

      day02_05_算术运算符_四则与取模运算

      day02_06_算术运算符_加号的多种用法

      day02_07_算术运算符_自增自减运算符

      day02_08_赋值运算符

      day02_09_比较运算符

      day02_10_逻辑运算符

      day02_11_三元运算符

    第7节 方法入门

      day02_12_方法入门_概念引入

      day02_13_方法入门_方法的定义

      day02_14_方法入门_方法的调用

    第8节 JDK9新特性-Jshell

      day02_15_JDK9的JShell简单使用

      day02_16_编译器的两点优化

      第9节 选择结构-if语句-switch语句

      day03_01_流程概述与顺序结构

      day03_02_选择结构_单if语句

      day03_03_选择结构_标准if-else语句

      day03_04_选择结构_扩展if-else语句

      day03_05_练习_用if语句实现考试成绩划分

      day03_06_练习_用if语句替换三元运算符

      day03_07_选择结构_标准的switch语句

      day03_08_选择结构_穿透的switch语

    第10节 循环结构-for-while-do..while

      day03_09_循环结构_循环概述与基本组成部分

      day03_10_循环结构_for循环

      day03_11_循环结构_while循环

      day03_12_循环结构_do-while循环

      day03_13_练习_用循环求出1-100之间的偶数和

      day03_14_三种循环的区别

      day03_15_循环控制_break语句

      day03_16_循环控制_continue语句

      day03_17_死循环

      day03_18_循环嵌套

     

     

     数据类型转换

    /*
    当数据类型不一样时,将会发生数据类型转换。
    
    自动类型转换(隐式)
        1. 特点:代码不需要进行特殊处理,自动完成。
        2. 规则:数据范围从小到大。
    
    强制类型转换(显式)
    */
    public class Demo01DataType {
        public static void main(String[] args) {
            System.out.println(1024); // 这就是一个整数,默认就是int类型
            System.out.println(3.14); // 这就是一个浮点数,默认就是double类型
            
            // 左边是long类型,右边是默认的int类型,左右不一样
            // 一个等号代表赋值,将右侧的int常量,交给左侧的long变量进行存储
            // int --> long,符合了数据范围从小到大的要求
            // 这一行代码发生了自动类型转换。
            long num1 = 100;
            System.out.println(num1); // 100
            
            // 左边是double类型,右边是float类型,左右不一样
            // float --> double,符合从小到大的规则
            // 也发生了自动类型转换
            double num2 = 2.5F;
            System.out.println(num2); // 2.5
            
            // 左边是float类型,右边是long类型,左右不一样
            // long --> float,范围是float更大一些,符合从小到大的规则
            // 也发生了自动类型转换
            float num3 = 30L;
            System.out.println(num3); // 30.0
        }
    }

      

    /*
    强制类型转换
        1. 特点:代码需要进行特殊的格式处理,不能自动完成。
        2. 格式:范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据;
    
    注意事项:
        1. 强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出。
        2. byte/short/char这三种类型都可以发生数学运算,例如加法“+”.
        3. byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型,然后再计算。
        4. boolean类型不能发生数据类型转换
    */
    public class Demo02DataType {
        public static void main(String[] args) {
            // 左边是int类型,右边是long类型,不一样
            // long --> int,不是从小到大
            // 不能发生自动类型转换!
            // 格式:范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据;
            int num = (int) 100L;
            System.out.println(num);
            
            // long强制转换成为int类型
            int num2 = (int) 6000000000L;
            System.out.println(num2); // 1705032704
            
            // double --> int,强制类型转换
            int num3 = (int) 3.99;
            System.out.println(num3); // 3,这并不是四舍五入,所有的小数位都会被舍弃掉
            
            char zifu1 = 'A'; // 这是一个字符型变量,里面是大写字母A
            System.out.println(zifu1 + 1); // 66,也就是大写字母A被当做65进行处理
            // 计算机的底层会用一个数字(二进制)来代表字符A,就是65
            // 一旦char类型进行了数学运算,那么字符就会按照一定的规则翻译成为一个数字
            
            byte num4 = 40; // 注意!右侧的数值大小不能超过左侧的类型范围
            byte num5 = 50;
            // byte + byte --> int + int --> int
            int result1 = num4 + num5;
            System.out.println(result1); // 90
            
            short num6 = 60;
            // byte + short --> int + int --> int
            // int强制转换为short:注意必须保证逻辑上真实大小本来就没有超过short范围,否则会发生数据溢出
            short result2 = (short) (num4 + num6);
            System.out.println(result2); // 100
        }
    }

      

     1 /*
     2 数字和字符的对照关系表(编码表):
     3 
     4 ASCII码表:American Standard Code for Information Interchange,美国信息交换标准代码。
     5 Unicode码表:万国码。也是数字和符号的对照关系,开头0-127部分和ASCII完全一样,但是从128开始包含有更多字符。
     6 
     7 48 - '0'
     8 65 - 'A'
     9 97 - 'a'
    10 */
    11 public class Demo03DataTypeChar {
    12     public static void main(String[] args) {
    13         char zifu1 = '1';
    14         System.out.println(zifu1 + 0); // 49
    15         
    16         char zifu2 = 'A'; // 其实底层保存的是65数字
    17         
    18         char zifu3 = 'c';
    19         // 左侧是int类型,右边是char类型,
    20         // char --> int,确实是从小到大
    21         // 发生了自动类型转换
    22         int num = zifu3;
    23         System.out.println(num); // 99
    24         
    25         char zifu4 = '中'; // 正确写法
    26         System.out.println(zifu4 + 0); // 20013
    27     }
    28 }

      

     1 /*
     2 运算符:进行特定操作的符号。例如:+
     3 表达式:用运算符连起来的式子叫做表达式。例如:20 + 5。又例如:a + b
     4 
     5 四则运算:
     6 加:+
     7 减:-
     8 乘:*
     9 除:/
    10 
    11 取模(取余数):%
    12 
    13 首先计算得到表达式的结果,然后再打印输出这个结果。
    14 复习一下小学一年级的除法公式:
    15 被除数 / 除数 = 商 ... 余数
    16 
    17 对于一个整数的表达式来说,除法用的是整除,整数除以整数,结果仍然是整数。只看商,不看余数。
    18 只有对于整数的除法来说,取模运算符才有余数的意义。
    19 
    20 注意事项:
    21     1. 一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。
    22 */
    23 public class Demo04Operator {
    24     public static void main(String[] args) {
    25         // 两个常量之间可以进行数学运算
    26         System.out.println(20 + 30);
    27         
    28         // 两个变量之间也可以进行数学运算
    29         int a = 20;
    30         int b = 30;
    31         System.out.println(a - b); // -10
    32         
    33         // 变量和常量之间可以混合使用
    34         System.out.println(a * 10); // 200
    35         
    36         int x = 10;
    37         int y = 3;
    38         
    39         int result1 = x / y;
    40         System.out.println(result1); // 3
    41         
    42         int result2 = x % y;
    43         System.out.println(result2); // 余数,模,1
    44         
    45         // int + double --> double + double --> double
    46         double result3 = x + 2.5;
    47         System.out.println(result3); // 12.5
    48     }
    49 }

    1
    /* 2 四则运算当中的加号“+”有常见的三种用法: 3 4 1. 对于数值来说,那就是加法。 5 2. 对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算。 6 char类型字符,和int类型数字,之间的对照关系表:ASCII、Unicode 7 3. 对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作。 8 任何数据类型和字符串进行连接的时候,结果都会变成字符串 9 */ 10 public class Demo05Plus { 11 public static void main(String[] args) { 12 // 字符串类型的变量基本使用 13 // 数据类型 变量名称 = 数据值; 14 String str1 = "Hello"; 15 System.out.println(str1); // Hello 16 17 System.out.println("Hello" + "World"); // HelloWorld 18 19 String str2 = "Java"; 20 // String + int --> String 21 System.out.println(str2 + 20); // Java20 22 23 // 优先级问题 24 // String + int + int 25 // String + int 26 // String 27 System.out.println(str2 + 20 + 30); // Java2030 28 29 System.out.println(str2 + (20 + 30)); // Java50 30 } 31 }

      Demo06Operator

     1 /*
     2 自增运算符:++
     3 自减运算符:--
     4 
     5 基本含义:让一个变量涨一个数字1,或者让一个变量降一个数字1
     6 使用格式:写在变量名称之前,或者写在变量名称之后。例如:++num,也可以num++
     7 使用方式:
     8     1. 单独使用:不和其他任何操作混合,自己独立成为一个步骤。
     9     2. 混合使用:和其他操作混合,例如与赋值混合,或者与打印操作混合,等。
    10 使用区别:
    11     1. 在单独使用的时候,前++和后++没有任何区别。也就是:++num;和num++;是完全一样的。
    12     2. 在混合的时候,有【重大区别】
    13         A. 如果是【前++】,那么变量【立刻马上+1】,然后拿着结果进行使用。    【先加后用】
    14         B. 如果是【后++】,那么首先使用变量本来的数值,【然后再让变量+1】。    【先用后加】
    15         
    16 注意事项:
    17     只有变量才能使用自增、自减运算符。常量不可发生改变,所以不能用。
    18 */
    19 public class Demo06Operator {
    20     public static void main(String[] args) {
    21         int num1 = 10;
    22         System.out.println(num1); // 10
    23         ++num1; // 单独使用,前++
    24         System.out.println(num1); // 11
    25         num1++; // 单独使用,后++
    26         System.out.println(num1); // 12
    27         System.out.println("=================");
    28         
    29         // 与打印操作混合的时候
    30         int num2 = 20;
    31         // 混合使用,先++,变量立刻马上变成21,然后打印结果21
    32         System.out.println(++num2); // 21
    33         System.out.println(num2); // 21
    34         System.out.println("=================");
    35         
    36         int num3 = 30;
    37         // 混合使用,后++,首先使用变量本来的30,然后再让变量+1得到31
    38         System.out.println(num3++); // 30
    39         System.out.println(num3); // 31
    40         System.out.println("=================");
    41         
    42         int num4 = 40;
    43         // 和赋值操作混合
    44         int result1 = --num4; // 混合使用,前--,变量立刻马上-1变成39,然后将结果39交给result1变量
    45         System.out.println(result1); // 39
    46         System.out.println(num4); // 39
    47         System.out.println("=================");
    48         
    49         int num5 = 50;
    50         // 混合使用,后--,首先把本来的数字50交给result2,然后我自己再-1变成49
    51         int result2 = num5--;
    52         System.out.println(result2); // 50
    53         System.out.println(num5); // 49
    54         System.out.println("=================");
    55         
    56         int x = 10;
    57         int y = 20;
    58         // 11 + 20 = 31
    59         int result3 = ++x + y--;
    60         System.out.println(result3); // 31
    61         System.out.println(x); // 11
    62         System.out.println(y); // 19
    63         
    64         // 30++; // 错误写法!常量不可以使用++或者--
    65     }
    66 }

      

    /*
    赋值运算符分为:
    
    基本赋值运算符:就是一个等号“=”,代表将右侧的数据交给左侧的变量。
        int a = 30;
    
    复合赋值运算符:
        +=        a += 3        相当于        a = a + 3
        -=        b -= 4        相当于        b = b - 4
        *=        c *= 5        相当于        c = c * 5
        /=        d /= 6        相当于        d = d / 6
        %=        e %= 7        相当于        e = e % 7
    
    注意事项:
        1. 只有变量才能使用赋值运算符,常量不能进行赋值。
        2. 复合赋值运算符其中隐含了一个强制类型转换。
    */
    public class Demo07Operator {
        public static void main(String[] args) {
            int a = 10;
            // 按照公式进行翻译:a = a + 5
            // a = 10 + 5;
            // a = 15;
            // a本来是10,现在重新赋值得到15
            a += 5; 
            System.out.println(a); // 15
            
            int x = 10;
            // x = x % 3;
            // x = 10 % 3;
            // x = 1;
            // x本来是10,现在重新赋值得到1
            x %= 3;
            System.out.println(x); // 1
            
            // 50 = 30; // 常量不能进行赋值,不能写在赋值运算符的左边。错误写法!
            
            byte num = 30;
            // num = num + 5;
            // num = byte + int
            // num = int + int
            // num = int
            // num = (byte) int
            num += 5;
            System.out.println(num); // 35
        }
    }

      

     1 /*
     2 比较运算符:
     3 大于:        >
     4 小于:        <
     5 大于等于:    >=
     6 小于等于:    <=
     7 相等:        ==    【两个等号连写才是相等,一个等号代表的是赋值】
     8 不相等:    !=
     9 
    10 注意事项:
    11 1. 比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false
    12 2. 如果进行多次判断,不能连着写。
    13 数学当中的写法,例如:1 < x < 3
    14 程序当中【不允许】这种写法。
    15 */
    16 public class Demo08Operator {
    17     public static void main(String[] args) {
    18         System.out.println(10 > 5); // true
    19         int num1 = 10;
    20         int num2 = 12;
    21         System.out.println(num1 < num2); // true
    22         System.out.println(num2 >= 100); // false
    23         System.out.println(num2 <= 100); // true
    24         System.out.println(num2 <= 12); // true
    25         System.out.println("===============");
    26         
    27         System.out.println(10 == 10); // true
    28         System.out.println(20 != 25); // true
    29         System.out.println(20 != 20); // false
    30         
    31         int x = 2;
    32         // System.out.println(1 < x < 3); // 错误写法!编译报错!不能连着写。
    33     }
    34 }

      Demo09Logic

     1 /*
     2 与(并且)    &&    全都是true,才是true;否则就是false
     3 或(或者)    ||    至少一个是true,就是true;全都是false,才是false
     4 非(取反)    !    本来是true,变成false;本来是false,变成true
     5 
     6 与“&&”,或“||”,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能。
     7 
     8 注意事项:
     9 1. 逻辑运算符只能用于boolean值。
    10 2. 与、或需要左右各自有一个boolean值,但是取反只要有唯一的一个boolean值即可。
    11 3. 与、或两种运算符,如果有多个条件,可以连续写。
    12 两个条件:条件A && 条件B
    13 多个条件:条件A && 条件B && 条件C
    14 
    15 TIPS:
    16 对于1 < x < 3的情况,应该拆成两个部分,然后使用与运算符连接起来:
    17 int x = 2;
    18 1 < x && x < 3
    19 */
    20 public class Demo09Logic {
    21     public static void main(String[] args) {
    22         System.out.println(true && false); // false
    23         // true && true --> true
    24         System.out.println(3 < 4 && 10 > 5); // true
    25         System.out.println("============");
    26         
    27         System.out.println(true || false); // true
    28         System.out.println(true || true); // true
    29         System.out.println(false || false); // false
    30         System.out.println("============");
    31         
    32         System.out.println(true); // true
    33         System.out.println(!true); // false    
    34         System.out.println("============");
    35         
    36         int a = 10;
    37         // false && ...
    38         System.out.println(3 > 4 && ++a < 100); // false
    39         System.out.println(a); // 10
    40         System.out.println("============");
    41         
    42         int b = 20;
    43         // true || ...
    44         System.out.println(3 < 4 || ++b < 100); // true
    45         System.out.println(b); // 20
    46     }
    47 }

      Demo10Operator

     1 /*
     2 一元运算符:只需要一个数据就可以进行操作的运算符。例如:取反!、自增++、自减--
     3 二元运算符:需要两个数据才可以进行操作的运算符。例如:加法+、赋值=
     4 三元运算符:需要三个数据才可以进行操作的运算符。
     5 
     6 格式:
     7 数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;
     8 
     9 流程:
    10 首先判断条件是否成立:
    11     如果成立为true,那么将表达式A的值赋值给左侧的变量;
    12     如果不成立为false,那么将表达式B的值赋值给左侧的变量;
    13 二者选其一。
    14 
    15 注意事项:
    16 1. 必须同时保证表达式A和表达式B都符合左侧数据类型的要求。
    17 2. 三元运算符的结果必须被使用。
    18 */
    19 public class Demo10Operator {
    20     public static void main(String[] args) {
    21         int a = 10;
    22         int b = 20;
    23         
    24         // 数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;
    25         // 判断a > b是否成立,如果成立将a的值赋值给max;如果不成立将b的值赋值给max。二者选其一
    26         int max = a > b ? a : b; // 最大值的变量
    27         System.out.println("最大值:" + max); // 20
    28         
    29         // int result = 3 > 4 ? 2.5 : 10; // 错误写法!
    30         
    31         System.out.println(a > b ? a : b); // 正确写法!
    32         
    33         // a > b ? a : b; // 错误写法!
    34     }
    35 }

      Demo11Method

    /*
    定义一个方法的格式:
    public static void 方法名称() {
        方法体
    }
    
    方法名称的命名规则和变量一样,使用小驼峰。
    方法体:也就是大括号当中可以包含任意条语句。
    
    注意事项:
    1. 方法定义的先后顺序无所谓。
    2. 方法的定义不能产生嵌套包含关系。
    3. 方法定义好了之后,不会执行的。如果要想执行,一定要进行方法的【调用】。
    
    如何调用方法,格式:
    
    方法名称();
    */
    public class Demo11Method {
        
        public static void main(String[] args) {
            farmer(); // 调用农民的方法
            seller(); // 调用小商贩的方法
            cook(); // 调用厨子的方法
            me(); // 调用我自己的方法
        }
        
        // 厨子
        public static void cook() {
            System.out.println("洗菜");
            System.out.println("切菜");
            System.out.println("炒菜");
            System.out.println("装盘");
        }
        
        //
        public static void me() {
            System.out.println("吃");
        }
        
        // 小商贩
        public static void seller() {
            System.out.println("运输到农贸市场");
            System.out.println("抬高价格");
            System.out.println("吆喝");
            System.out.println("卖给厨子");
        }
        
        // 农民伯伯
        public static void farmer() {
            System.out.println("播种");
            System.out.println("浇水");
            System.out.println("施肥");
            System.out.println("除虫");
            System.out.println("收割");
            System.out.println("卖给小商贩");
        }
    }

      注意点

      Demo12Notice

     1 /*
     2 对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围,
     3 那么javac编译器将会自动隐含地为我们补上一个(byte)(short)(char)。
     4 
     5 1. 如果没有超过左侧的范围,编译器补上强转。
     6 2. 如果右侧超过了左侧范围,那么直接编译器报错。
     7 */
     8 public class Demo12Notice {
     9     public static void main(String[] args) {
    10         // 右侧确实是一个int数字,但是没有超过左侧的范围,就是正确的。
    11         // int --> byte,不是自动类型转换
    12         byte num1 = /*(byte)*/ 30; // 右侧没有超过左侧的范围
    13         System.out.println(num1); // 30
    14         
    15         // byte num2 = 128; // 右侧超过了左侧的范围
    16         
    17         // int --> char,没有超过范围
    18         // 编译器将会自动补上一个隐含的(char)
    19         char zifu = /*(char)*/ 65;
    20         System.out.println(zifu); // A
    21     }
    22 }

      Demo13Notice

     1 /*
     2 在给变量进行赋值的时候,如果右侧的表达式当中全都是常量,没有任何变量,
     3 那么编译器javac将会直接将若干个常量表达式计算得到结果。
     4 short result = 5 + 8; // 等号右边全都是常量,没有任何变量参与运算
     5 编译之后,得到的.class字节码文件当中相当于【直接就是】:
     6 short result = 13;
     7 右侧的常量结果数值,没有超过左侧范围,所以正确。
     8 
     9 这称为“编译器的常量优化”。
    10 
    11 但是注意:一旦表达式当中有变量参与,那么就不能进行这种优化了。
    12 */
    13 public class Demo13Notice {
    14     public static void main(String[] args) {
    15         short num1 = 10; // 正确写法,右侧没有超过左侧的范围,
    16         
    17         short a = 5;
    18         short b = 8;
    19         // short + short --> int + int --> int
    20         // short result = a + b; // 错误写法!左侧需要是int类型
    21         
    22         // 右侧不用变量,而是采用常量,而且只有两个常量,没有别人
    23         short result = 5 + 8;
    24         System.out.println(result);
    25         
    26         short result2 = 5 + a + 8; // 18
    27     }
    28 }

      day02_15_JDK9的JShell简单使用

      day02_16_编译器的两点优化

    1 // 顺序结构
    2 public class Demo01Sequence {
    3     public static void main(String[] args) {
    4         System.out.println("今天天气不错");
    5         System.out.println("挺风和日丽的");
    6         System.out.println("我们下午没课");
    7         System.out.println("这的确挺爽的");
    8     }
    9 }

        单if语句

    // 单if语句
    public class Demo02If {
        public static void main(String[] args) {
            System.out.println("今天天气不错,正在压马路……突然发现一个快乐的地方:网吧");
            int age = 19;
            if (age >= 18) {
                System.out.println("进入网吧,开始high!");
                System.out.println("遇到了一群猪队友,开始骂街。");
                System.out.println("感觉不爽,结账走人。");
            }
            System.out.println("回家吃饭");
        }
    }
     1 // 标准的if-else语句
     2 public class Demo03IfElse {
     3     public static void main(String[] args) {
     4         int num = 666;
     5         
     6         if (num % 2 == 0) { // 如果除以2能够余数为0,说明是偶数
     7             System.out.println("偶数");
     8         } else {
     9             System.out.println("奇数");
    10         }
    11     }
    12 }
     1 // x和y的关系满足如下:
     2 // 如果x >= 3,那么y = 2x + 1;
     3 // 如果-1 < x < 3,那么y = 2x;
     4 // 如果x <= -1,那么y = 2x – 1;
     5 public class Demo04IfElseExt {
     6     public static void main(String[] args) {
     7         int x = -10;
     8         int y;
     9         if (x >= 3) {
    10             y = 2 * x + 1;
    11         } else if (-1 < x && x < 3) {
    12             y = 2 * x;
    13         } else {
    14             y = 2 * x - 1;
    15         }
    16         System.out.println("结果是:" + y);
    17     }
    18 }
    public class Demo05IfElsePractise {
        public static void main(String[] args) {
            int score = 120;
            if (score >= 90 && score <= 100) {
                System.out.println("优秀");
            } else if (score >= 80 && score < 90) {
                System.out.println("好");
            } else if (score >= 70 && score < 80) {
                System.out.println("良");
            } else if (score >= 60 && score < 70) {
                System.out.println("及格");
            } else if (score >= 0 && score < 60) {
                System.out.println("不及格");
            } else { // 单独处理边界之外的不合理情况
                System.out.println("数据错误");
            }
        }
    }
    // 题目:使用三元运算符和标准的if-else语句分别实现:取两个数字当中的最大值
    public class Demo06Max {
        public static void main(String[] args) {
            int a = 105;
            int b = 20;
            
            // 首先使用三元运算符
            // int max = a > b ? a : b;
            
            // 使用今天的if语句
            int max;
            if (a > b) {
                max = a;
            } else {
                max = b;
            }
            
            System.out.println("最大值:" + max);
        }
    }
     1 public class Demo07Switch {
     2     public static void main(String[] args) {
     3         int num = 10;
     4         
     5         switch (num) {
     6             case 1:
     7                 System.out.println("星期一");
     8                 break;
     9             case 2:
    10                 System.out.println("星期二");
    11                 break;
    12             case 3:
    13                 System.out.println("星期三");
    14                 break;
    15             case 4:
    16                 System.out.println("星期四");
    17                 break;
    18             case 5:
    19                 System.out.println("星期五");
    20                 break;
    21             case 6:
    22                 System.out.println("星期六");
    23                 break;
    24             case 7:
    25                 System.out.println("星期日");
    26                 break;
    27             default:
    28                 System.out.println("数据不合理");
    29                 break; // 最后一个break语句可以省略,但是强烈推荐不要省略
    30         }
    31     }
    32 }
     1 /*
     2 switch语句使用的注意事项:
     3 
     4 1. 多个case后面的数值不可以重复。
     5 
     6 2. switch后面小括号当中只能是下列数据类型:
     7 基本数据类型:byte/short/char/int
     8 引用数据类型:String字符串、enum枚举
     9 
    10 3. switch语句格式可以很灵活:前后顺序可以颠倒,而且break语句还可以省略。
    11 “匹配哪一个case就从哪一个位置向下执行,直到遇到了break或者整体结束为止。”
    12 */
    13 public class Demo08SwitchNotice {
    14     public static void main(String[] args) {
    15         int num = 2;
    16         switch (num) {
    17             case 1:
    18                 System.out.println("你好");
    19                 break;
    20             case 2:
    21                 System.out.println("我好");
    22                 // break;
    23             case 3:
    24                 System.out.println("大家好");
    25                 break;
    26             default:
    27                 System.out.println("他好,我也好。");
    28                 break;
    29         } // switch
    30     }
    31 }
     1 /*
     2 循环结构的基本组成部分,一般可以分成四部分:
     3 
     4 1. 初始化语句:在循环开始最初执行,而且只做唯一一次。
     5 2. 条件判断:如果成立,则循环继续;如果不成立,则循环退出。
     6 3. 循环体:重复要做的事情内容,若干行语句。
     7 4. 步进语句:每次循环之后都要进行的扫尾工作,每次循环结束之后都要执行一次。
     8 */
     9 public class Demo09For {
    10     public static void main(String[] args) {
    11         for (int i = 1; i <= 100; i++) {
    12             System.out.println("我错啦!原谅我吧!" + i);
    13         }
    14         System.out.println("程序停止");
    15     }
    16 }
    /*
    while循环有一个标准格式,还有一个扩展格式。
    
    标准格式:
    while (条件判断) {
        循环体
    }
    
    扩展格式:
    
    初始化语句;
    while (条件判断) {
        循环体;
        步进语句;
    }
    */
    public class Demo10While {
        public static void main(String[] args) {
            for (int i = 1; i <= 10; i++) {
                System.out.println("我错啦!" + i);
            }
            System.out.println("=================");
            
            int i = 1; // 1. 初始化语句
            while (i <= 10) { // 2. 条件判断
                System.out.println("我错啦!" + i); // 3. 循环体
                i++; // 4. 步进语句
            }
        }
    }
     1 /*
     2 do-while循环的标准格式:
     3 
     4 do {
     5     循环体
     6 } while (条件判断);
     7 
     8 扩展格式:
     9 
    10 初始化语句
    11 do {
    12     循环体
    13     步进语句
    14 } while (条件判断);
    15 */
    16 public class Demo11DoWhile {
    17     public static void main(String[] args) {
    18         for (int i = 1; i <= 10; i++) {
    19             System.out.println("原谅你啦!起来吧!地上怪凉!" + i);
    20         }
    21         System.out.println("===============");
    22         
    23         int i = 1; // 1. 初始化语句
    24         do {
    25             System.out.println("原谅你啦!起来吧!地上怪凉!" + i); // 3. 循环体
    26             i++; // 4. 步进语句
    27         } while (i <= 10); // 2. 条件判断
    28     }
    29 }
    /*
    题目:求出1-100之间的偶数和。
    
    思路:
    1. 既然范围已经确定了是1到100之间,那么我就从1、2、3……一直到100这么多数字一个一个进行检查。
    2. 总共有100个数字,并非所有数字都能用。必须要是偶数才能用,判断(if语句)偶数:num % 2 == 0
    3. 需要一个变量,用来进行累加操作。也就好比是一个存钱罐。
    */
    public class Demo12HundredSum {
        public static void main(String[] args) {
            int sum = 0; // 用来累加的存钱罐
            
            for (int i = 1; i <= 100; i++) {
                if (i % 2 == 0) { // 如果是偶数
                    sum += i;
                }
            }
            System.out.println("结果是:" + sum);
        }
    }
     1 /*
     2 三种循环的区别。
     3 
     4 1. 如果条件判断从来没有满足过,那么for循环和while循环将会执行0次,但是do-while循环会执行至少一次。
     5 2. for循环的变量在小括号当中定义,只有循环内部才可以使用。while循环和do-while循环初始化语句本来就在外面,所以出来循环之后还可以继续使用。
     6 */
     7 public class Demo13LoopDifference {
     8     public static void main(String[] args) {
     9         for (int i = 1; i < 0; i++) {
    10             System.out.println("Hello");
    11         }
    12         // System.out.println(i); // 这一行是错误写法!因为变量i定义在for循环小括号内,只有for循环自己才能用。
    13         System.out.println("================");
    14         
    15         int i = 1;
    16         do {
    17             System.out.println("World");
    18             i++;
    19         } while (i < 0);
    20         // 现在已经超出了do-while循环的范围,我们仍然可以使用变量i
    21         System.out.println(i); // 2
    22     }
    23 }
     1 /*
     2 break关键字的用法有常见的两种:
     3 
     4 1. 可以用在switch语句当中,一旦执行,整个switch语句立刻结束。
     5 2. 还可以用在循环语句当中,一旦执行,整个循环语句立刻结束。打断循环。
     6 
     7 关于循环的选择,有一个小建议:
     8 凡是次数确定的场景多用for循环;否则多用while循环。
     9 */
    10 public class Demo14Break {
    11     public static void main(String[] args) {
    12         for (int i = 1; i <= 10; i++) {
    13             // 如果希望从第4次开始,后续全都不要了,就要打断循环
    14             if (i == 4) { // 如果当前是第4次
    15                 break; // 那么就打断整个循环
    16             }
    17             System.out.println("Hello" + i);
    18         }
    19     }
    20 }
    /*
    另一种循环控制语句是continue关键字。
    一旦执行,立刻跳过当前次循环剩余内容,马上开始下一次循环。
    */
    public class Demo15Continue {
        public static void main(String[] args) {
            for (int i = 1; i <= 10; i++) {
                if (i == 4) { // 如果当前是第4层
                    continue; // 那么跳过当前次循环,马上开始下一次(第5层)
                }
                System.out.println(i + "层到了。");
            }
        }
    }
     1 /*
     2 永远停不下来的循环,叫做死循环。
     3 
     4 死循环的标准格式:
     5 while (true) {
     6     循环体
     7 }
     8 */
     9 public class Demo16DeadLoop {
    10     public static void main(String[] args) {
    11         while (true) {
    12             System.out.println("I Love Java!");
    13         }
    14         
    15         // System.out.println("Hello");
    16     }
    17 }
    public class Demo17LoopHourAndMinute {
        public static void main(String[] args) {
            for (int hour = 0; hour < 24; hour++) { // 外层控制小时
    
                for (int minute = 0; minute < 60; minute++) { // 内层控制小时之内的分钟
                    System.out.println(hour + "点" + minute + "分");
                }
    
            }
        }
    }
  • 相关阅读:
    分享一个新软件 云端软件平台+个人使用心得
    扩展easyui.datagrid,添加数据loading遮罩
    在Flash中结合webservice 实现无缝滚动效果
    使用HttpWebRequest访问Web服务,并传递Cookie数据
    批量生成一组不同随机字符串
    文章分享代码
    jQuery.easyui与jQuery UI冲突
    转换BBSXP 2008到Discuz X1.5部分问题解决记录
    在ASP.NET的server form 中使用easyui的layout布局控件
    神奇3D圣诞树高超的技术!
  • 原文地址:https://www.cnblogs.com/yaozhenhua/p/10307152.html
Copyright © 2011-2022 走看看