• 【原】Java学习笔记005


     1 package cn.temptation;
     2 
     3 public class Sample01 {
     4     public static void main(String[] args) {
     5         // 程序的流程控制(流程结构):顺序结构、选择结构、循环结构
     6         
     7         // 顺序结构:从上向下,顺序执行
     8         System.out.println("出生...");
     9         System.out.println("享受人生...");
    10         System.out.println("挂了...");
    11     }
    12 }
     1 package cn.temptation;
     2 
     3 public class Sample02 {
     4     public static void main(String[] args) {
     5         // 选择结构:1、if语句块; 2、switch语句块
     6         
     7         // if语句块
     8         
     9         // 形式1、if(比较表达式) { ... }
    10         int i = 2;
    11         
    12 //        if (i != 3) {
    13 //            System.out.println(i);
    14 //        }
    15         
    16         // 注意:
    17         // 1、比较表达式的结果必须是一个boolean类型的值
    18         // 2、if语句如果不使用大括号,语法上可以;但是不使用大括号,if语句块只会影响其后的一行语句
    19         
    20 //        if (i != 3)
    21 //            System.out.println(i);
    22         
    23         // 下面执行结果为2,3
    24 //        if (i != 3) {
    25 //            System.out.println(i);
    26 //            System.out.println(++i);
    27 //        }
    28         
    29         // 下面执行结果为2,3
    30 //        if (i != 3) 
    31 //            System.out.println(i);
    32 //            System.out.println(++i);
    33         
    34         // 下面执行无结果
    35 //        if (i == 3) {
    36 //            System.out.println(i);
    37 //            System.out.println(++i);
    38 //        }
    39         
    40         // 下面执行结果为3,从执行结果得知,if无大括号的语句块后的第二行语句开始,就不再受if语句块的影响
    41         if (i == 3) 
    42             System.out.println(i);
    43             System.out.println(++i);
    44     }
    45 }
     1 package cn.temptation;
     2 
     3 public class Sample03 {
     4     public static void main(String[] args) {
     5         // 形式2、if(比较表达式) { ... } else { ... }
     6         int i = 2;
     7         int j = 3;
     8 
     9         if (i == j) {
    10             System.out.println("i等于j");
    11         } else {
    12             System.out.println("i不等于j");
    13         }
    14         
    15         // 联想一下,这种形式的if结构(if...else结构)和 三元运算符的效果差不多
    16     }
    17 }
     1 package cn.temptation;
     2 
     3 import java.util.Scanner;
     4 
     5 public class Sample04 {
     6     public static void main(String[] args) {
     7         // 需求:使用if...else...结构获取通过键盘录入的三个数字中最大的一个
     8         
     9         // 声明三个变量来接收键盘录入的数字
    10         Scanner input = new Scanner(System.in);
    11         // 一行中声明多个变量
    12         int i, j, k;
    13         System.out.println("输入第一个数字:");
    14         i = input.nextInt();
    15         System.out.println("输入第二个数字:");
    16         j = input.nextInt();
    17         System.out.println("输入第三个数字:");
    18         k = input.nextInt();
    19         input.close();
    20         
    21         // 使用if...else...结构比较这三个数字
    22         int temp = 0;
    23         int max = 0;
    24         
    25 //        // 写法1、分步操作
    26 //        // ① 先把i、j进行比较得出较大的一个赋值给临时变量temp
    27 //        if (i > j) {
    28 //            temp = i;
    29 //        } else {
    30 //            temp = j;
    31 //        }
    32 //        
    33 //        // ② 再把temp、k进行比较得出最大的一个赋值给最终变量max
    34 //        if (temp > k) {
    35 //            max = temp;
    36 //        } else {
    37 //            max = k;
    38 //        }
    39         
    40         // 写法2、if...else...的嵌套
    41         if (i > j) {
    42             // 满足该条件时,说明i是i、j中较大的
    43             if (i > k) {
    44                 max = i;
    45             } else {
    46                 max = k;
    47             }
    48         } else {
    49             // 满足该条件时,说明j是i、j中较大的
    50             if (j > k) {
    51                 max = j;
    52             } else {
    53                 max = k;
    54             }
    55         }
    56         
    57         System.out.println("输入的数字为:" + i + "," + j + "," + k + "中,最大的一个数字为:" + max);
    58     }
    59 }
     1 package cn.temptation;
     2 
     3 public class Sample05 {
     4     public static void main(String[] args) {
     5         // 形式3
     6         // if(比较表达式) { ... }
     7         // else if(比较表达式) { ... }
     8         // else if(比较表达式) { ... }
     9         // ...
    10         // else { ... }
    11         // 执行时,依次判断每一个比较表达式是否为true,如果为true,就执行该if语句块中的内容
    12         
    13         // 注意:else if之间有一个空格
    14         
    15         int i = 2;
    16         
    17 //        if (i == 3) {
    18 //            System.out.println("i等于3");
    19 //        } else if (i == 5) {
    20 //            System.out.println("i等于5");
    21 //        } else {
    22 //            System.out.println("i等于其他值");
    23 //        }
    24         
    25         // 注意:如果多个比较表达式均为true(多个条件均成立),那么会执行第1个为true的if语句块中的内容
    26         //        后续为true的if语句块不会再走入了
    27 //        if (i < 3) {
    28 //            System.out.println("i小于3");
    29 //        } else if (i < 5) {
    30 //            System.out.println("i小于5");
    31 //        } else {
    32 //            System.out.println("i等于:" + i);
    33 //        }
    34         
    35         if (i < 5) {
    36             System.out.println("i小于5");
    37         } else if (i < 3) {
    38             System.out.println("i小于3");
    39         } else {
    40             System.out.println("i等于:" + i);
    41         }
    42     }
    43 }
     1 package cn.temptation;
     2 
     3 import java.util.Scanner;
     4 
     5 public class Sample06 {
     6     public static void main(String[] args) {
     7         // 需求:根据键盘录入的数字,判断输入的数字为奇数还是偶数?(分别使用if结构 和 三元运算符实现)
     8         Scanner input = new Scanner(System.in);
     9         System.out.println("输入一个数字:");
    10         int i = input.nextInt();
    11         input.close();
    12         
    13         // 写法1、使用if结构
    14 //        if (i % 2 == 0) {
    15 //            System.out.println("该数为偶数");
    16 //        } else {
    17 //            System.out.println("该数为奇数");
    18 //        }
    19         
    20         // 写法2、三元运算符
    21         // 因为三元运算符 和 if...else...结构的相近,考虑直接把if...else结构中的语句放到三元运算符中,这是生搬硬套,语法出错
    22 //        (i % 2 == 0) ? (System.out.println("该数为偶数")) : (System.out.println("该数为奇数"));
    23         
    24         // 变通写法1、本质上和写法1是一样的
    25 //        boolean result = (i % 2 == 0) ? true : false;
    26 //        if (result) {
    27 //            System.out.println("该数为偶数");
    28 //        } else {
    29 //            System.out.println("该数为奇数");
    30 //        }
    31         
    32         // 变通写法2、纯粹使用三元运算符
    33         // 根据是否为偶数获取相应的字符串
    34         String msg = (i % 2 == 0) ? "该数为偶数" : "该数为奇数";
    35         // 输出字符串的内容
    36         System.out.println(msg);
    37     }
    38 }
     1 package cn.temptation;
     2 
     3 import java.util.Scanner;
     4 
     5 public class Sample07 {
     6     public static void main(String[] args) {
     7         // 需求:根据键盘录入的分数数字,判断输入的分数是优秀(90~100)、良好(80~89)、及格(60~79)、不及格(0~59)
     8         Scanner input = new Scanner(System.in);
     9         System.out.println("输入一个分数:");
    10         int score = input.nextInt();
    11         input.close();
    12         
    13         // 下句表示范围的写法是错误的,画个数轴看一下
    14 //        if (score >= 90 || score <= 100) {
    15         if (score >= 90 && score <= 100) {
    16             System.out.println("优秀");
    17         } else if (score >= 80 && score <= 89) {
    18             System.out.println("良好");
    19         } else if (score >= 60 && score <= 79) {
    20             System.out.println("及格");
    21         } else if (score >= 0 && score <= 59) {
    22             System.out.println("不及格");
    23         } else {
    24             System.out.println("输入的分数应该在【0~100】之间");
    25         }
    26         
    27         // 注意:仔细看看需求,其实隐含了一个条件:即分数的范围是在0~100之间
    28     }
    29 }
     1 package cn.temptation;
     2 
     3 import java.util.Scanner;
     4 
     5 public class Sample08 {
     6     public static void main(String[] args) {
     7         // 需求:根据键盘录入的月份数字,判断是哪一个季节?(3~5月为春季,6~8月为夏季,9~11月为秋季,12~2月为冬季)
     8         Scanner input = new Scanner(System.in);
     9         System.out.println("输入一个月份:");
    10         int month = input.nextInt();
    11         input.close();
    12         
    13         // 写法1
    14         if (month >= 3 && month <= 5) {
    15             System.out.println("Spring");
    16         } else if (month >= 6 && month <= 8) {
    17             System.out.println("Summer");
    18         } else if (month >= 9 && month <= 11) {
    19             System.out.println("Autumn");
    20         // 下句写法没有满足条件的数字
    21 //        } else if (month >= 12 && month <= 2) {
    22         } else if (month == 12 || month == 1 || month == 2) {
    23             System.out.println("Winter");
    24         } else {
    25             System.out.println("输入的月份应该在【1~12】之间");
    26         }
    27         
    28         // 写法2
    29         int result = month / 3;
    30         
    31         if (month == 0 || month == 13 || month == 14 || result < 0 || result > 4) {
    32             System.out.println("输入的月份应该在【1~12】之间");
    33         } else if (result < 1) {
    34             System.out.println("Winter");
    35         } else if (result < 2) {
    36             System.out.println("Spring");
    37         } else if (result < 3) {
    38             System.out.println("Summer");
    39         } else if (result < 4) {
    40             System.out.println("Autumn");
    41         } else {
    42             System.out.println("Winter");
    43         }
    44         
    45         // 编写代码及测试时,要充分考虑,特别是边界值,考虑时不要遗漏
    46     }
    47 }
     1 package cn.temptation;
     2 
     3 public class Sample09 {
     4     public static void main(String[] args) {
     5         // 选择结构:switch结构
     6         
     7 //        switch (变量) {
     8 //        case 值1:
     9 //            break;
    10 //        case 值2:
    11 //            break;
    12 //        ...
    13 //        case 值n:
    14 //            break;
    15 //        default:
    16 //            break;
    17 //        }
    18         
    19         // 注意:
    20         // 1、switch后括号中的内容有一些限制:byte、short、int、long、char
    21         //        JDK 5后可以使用枚举;JDK 7后可以使用字符串类型
    22         // 2、case:后面的值拿来和switch括号中的内容进行比较的,当比较结果为true时,会执行该case语句块中的内容
    23         // 3、break:英文是中断的意思,也就是说后续都不做了,作用范围到switch右侧的大括号为止
    24         // 4、default:英文是默认的意思,如果case条件的值都不能匹配switch括号中的值,那么执行default语句块中的内容
    25         // 5、switch结构中可以没有default部分,但是要求加上default部分
    26         // 6、switch结构中可以只有default部分,表示默认就执行该default语句块中的内容
    27         
    28         int i = 2;
    29         
    30         switch (i) {
    31         case 1:
    32             System.out.println("i等于1");
    33             break;
    34         case 2:
    35             System.out.println("i等于2");
    36             break;
    37         case 3:
    38             System.out.println("i等于3");
    39             break;
    40         default:
    41             System.out.println("i等于其他值");
    42             break;
    43         }
    44         
    45         System.out.println("这里不会收到switch结构中的break语句的影响");
    46         
    47         switch (i) {
    48         default:
    49             System.out.println("switch结构中只有default部分");
    50             break;
    51         }
    52     }
    53 }
     1 package cn.temptation;
     2 
     3 import java.util.Scanner;
     4 
     5 public class Sample10 {
     6     public static void main(String[] args) {
     7         // 注意:
     8         // 1、case部分的值不能重复,否则有语法错误:Duplicate case
     9         // 2、default部分不是非得放在switch结构中的最后,可以放在任何和case同级的位置,只是习惯性的放在最后
    10         // 3、放在最后的default部分,可以不写break语句,但是建议写上
    11         
    12         // 需求:根据键盘录入的数字,使用switch结构判断是星期几
    13         Scanner input = new Scanner(System.in);
    14         System.out.println("输入一个数字作为星期几:");
    15         int weekDay = input.nextInt();
    16         input.close();
    17         
    18         switch (weekDay) {
    19         // default部分可以放在switch结构的最前端
    20 //        default:
    21 //            System.out.println("输入不正确");
    22 //            break;
    23         case 1:
    24             System.out.println("Monday");
    25             break;
    26         case 2:
    27             System.out.println("Tuesday");
    28             break;
    29         // default部分可以放在switch结构的任意位置
    30 //        default:
    31 //            System.out.println("输入不正确");
    32 //            break;
    33         case 3:
    34             System.out.println("Wednesday");
    35             break;
    36         case 4:
    37             System.out.println("Thursday");
    38             break;
    39         case 5:
    40             System.out.println("Friday");
    41             break;
    42         case 6:
    43             System.out.println("Saturday");
    44             break;
    45         case 7:
    46             System.out.println("Sunday");
    47             break;
    48         default:
    49             System.out.println("输入不正确");
    50             // 写在最后的default部分中的break语句可以省略不写
    51 //            break;
    52         }
    53     }
    54 }
     1 package cn.temptation;
     2 
     3 public class Sample11 {
     4     public static void main(String[] args) {
     5         // switch结构在JDK 7后支持字符串,case后就可以使用字符串
     6         String course = "Java";
     7         
     8         switch (course) {
     9         case "Android":
    10             System.out.println("Android是主流的移动开发平台");
    11             break;
    12         case "Java":
    13             System.out.println("Java真简单");
    14             break;
    15         case "MySQL":
    16             System.out.println("MySQL是主流的数据库");
    17             break;
    18         default:
    19             System.out.println("想混口饭吃,总得会一样!");
    20             break;
    21         }
    22     }
    23 }
     1 package cn.temptation;
     2 
     3 public class Sample12 {
     4     public static void main(String[] args) {
     5         // 特别注意:
     6         // switch结构中,case部分需要结合break语句使用,如果只写case部分不写其相应的break语句,会发生"case击穿"现象
     7         // 如果case部分没有相应的break语句,当该case条件满足时,执行该case部分的语句内容,并一直向下执行(无视其他case条件),直到遇见break为止
     8         // 如果一直没有遇见break,以switch右侧的大括号(switch结构作用域右侧的边界)作为执行结束的依据
     9         
    10         int i = 2;
    11         
    12         switch (i) {
    13         case 1:
    14             System.out.println("i等于1");
    15             break;
    16         case 2:
    17             System.out.println("i等于2");
    18         case 3:
    19             System.out.println("i等于3");
    20 //            break;
    21         default:
    22             System.out.println("i等于其他值");
    23             break;
    24         }
    25         
    26         System.out.println("这里会不会被执行到?");
    27     }
    28 }
     1 package cn.temptation;
     2 
     3 public class Sample13 {
     4     public static void main(String[] args) {
     5         int i = 2;
     6         
     7         // 问题1
     8 //        switch (i) {
     9 //        default:
    10 //            i++;
    11 //            break;
    12 //        case 2:
    13 //            ++i;
    14 //            break;
    15 //        case 3:
    16 //            ++i;
    17 //            break;
    18 //        case 4:
    19 //            ++i;
    20 //            break;
    21 //        }
    22 //        
    23 //        System.out.println(i);    // 3
    24         
    25         // default部分放在switch结构的最前面,也不会第一个执行,也优先匹配case条件
    26         
    27         // 问题2
    28         switch (i) {
    29         default:
    30             i++;
    31         case 3:
    32             ++i;
    33         case 4:
    34             ++i;
    35         }
    36         
    37         System.out.println(i);
    38     }
    39 }
      1 package cn.temptation;
      2 
      3 import java.util.Scanner;
      4 
      5 public class Sample14 {
      6     public static void main(String[] args) {
      7         // 需求:根据键盘录入的数字,判断是什么季节?(分别使用if结构 和 switch结构)
      8         Scanner input = new Scanner(System.in);
      9         System.out.println("输入一个月份:");
     10         int month = input.nextInt();
     11         input.close();
     12         
     13         // 写法1、if结构
     14         if (month >= 3 && month <= 5) {
     15             System.out.println("Spring");
     16         } else if (month >= 6 && month <= 8) {
     17             System.out.println("Summer");
     18         } else if (month >= 9 && month <= 11) {
     19             System.out.println("Autumn");
     20         } else if (month == 12 || month == 1 || month == 2) {
     21             System.out.println("Winter");
     22         } else {
     23             System.out.println("输入的月份应该在【1~12】之间");
     24         }
     25         
     26         // 写法2、switch结构
     27 //        switch (month) {
     28 //        case 1:
     29 //            System.out.println("Winter");
     30 //            break;
     31 //        case 2:
     32 //            System.out.println("Winter");
     33 //            break;
     34 //        case 3:
     35 //            System.out.println("Spring");
     36 //            break;
     37 //        case 4:
     38 //            System.out.println("Spring");
     39 //            break;
     40 //        case 5:
     41 //            System.out.println("Spring");
     42 //            break;
     43 //        case 6:
     44 //            System.out.println("Summer");
     45 //            break;
     46 //        case 7:
     47 //            System.out.println("Summer");
     48 //            break;
     49 //        case 8:
     50 //            System.out.println("Summer");
     51 //            break;
     52 //        case 9:
     53 //            System.out.println("Autumn");
     54 //            break;
     55 //        case 10:
     56 //            System.out.println("Autumn");
     57 //            break;
     58 //        case 11:
     59 //            System.out.println("Autumn");
     60 //            break;
     61 //        case 12:
     62 //            System.out.println("Winter");
     63 //            break;
     64 //        default:
     65 //            System.out.println("输入的月份应该在【1~12】之间");
     66 //            break;
     67 //        }
     68         
     69         // 因为switch结构中的很多case条件都做的是相同的事情,所以考虑优化一下写法
     70         // 考虑把做相同事情的case条件合并到一起,使用case击穿,这样可以省略一些重复的代码
     71         switch (month) {
     72         case 12:
     73         case 1:
     74         case 2:
     75             System.out.println("Winter");
     76             break;
     77         // 下句写法语法错误:The operator || is undefined for the argument type(s) int, int
     78 //        case 3 || 4 || 5:
     79         case 3:
     80         case 4:
     81         case 5:
     82             System.out.println("Spring");
     83             break;
     84         case 6:
     85         case 7:
     86         case 8:
     87             System.out.println("Summer");
     88             break;
     89         case 9:
     90         case 10:
     91         case 11:
     92             System.out.println("Autumn");
     93             break;
     94         default:
     95             System.out.println("输入的月份应该在【1~12】之间");
     96             break;
     97         }
     98     }
     99     // if结构 和 switch结构的区别:
    100     // 1、if结构的括号内使用的是比较表达式,得到的结果是boolean类型的值
    101     // 2、switch结构的case后面跟的是用来匹配的值
    102     
    103     // if结构 和 switch结构的选择:
    104     // 1、if结构用于条件描述的范围比较大的场合
    105     // 2、switch结构用于少量的有特定的值进行比较的场合
    106 }
  • 相关阅读:
    Flink实例(十九):FLINK 异步IO (四)实例 (二) MySQL
    Flink实例(十八):FLINK 异步IO (三)实例 (一)
    Flink实例(十七):FLINK 异步IO (二)原理
    kata镜像
    golang no Go files
    docker命令
    golang 编译安装kata container (二)
    golang代理
    golang 安装依赖
    golang
  • 原文地址:https://www.cnblogs.com/iflytek/p/6443765.html
Copyright © 2020-2023  润新知