zoukankan      html  css  js  c++  java
  • 【原】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 }
  • 相关阅读:
    Vue(小案例_vue+axios仿手机app)_go实现退回上一个路由
    nyoj 635 Oh, my goddess
    nyoj 587 blockhouses
    nyoj 483 Nightmare
    nyoj 592 spiral grid
    nyoj 927 The partial sum problem
    nyoj 523 亡命逃窜
    nyoj 929 密码宝盒
    nyoj 999 师傅又被妖怪抓走了
    nyoj 293 Sticks
  • 原文地址:https://www.cnblogs.com/iflytek/p/6443765.html
Copyright © 2011-2022 走看看