首页 > 代码库 > Day03_JAVA语言基础第三天

Day03_JAVA语言基础第三天

1、位运算符

  1、面试题(掌握)

            ^:一个数据对同一个数据^两次,结果还是数据本身

            举例:a ^ b ^ b = a

    2、注意

            知道结论,面试题,以后就完全不用看


  2逻辑运算符(掌握)

                1、分类

                       &,|,!,^,&&,||

                2、详细说明           

                      &:有假则假

                      |:有真则真

                      !:真则假,假则真

                      ^:相同为假,不同为真

                 

                     &&:短路与:如果左边为false,右边不执行

                      ||:短路或如果左边为true,右边不执行

                      开发中常用&&,||,!

                3、经验

                        一般情况在开发过程中用的最多的是:++,(),&&,||,!,

2、条件运算符(掌握)

          又叫三元运算符,三目运算符                
        1、 格式
                举例:

  1. int age = 100;
  2. String str = age>50?"老腊肉":"小鲜肉";
  3. System.out.println(str);
        3、注意
                既然是表达式,就必须有结果         
        4、什么时候用                
                给变量赋值的时候用

                  条件表达式表达式1:表达式2;

        2、执行流程

                根据条件表达式返回的值是true还是false决定结果是什么,如果是true,就把表达式1作为结果,如果是false就把表达式2作为结果

3、两个面试题(掌握)

    1、请用最有效率的代码写出28

                  2 << 3;                =2 * (2*2*2)                =2 * 8

    2、请交换两个变量

                  int a = 10;

                  int b = 20;

                  你要知道他要面你什么还要知道你开发中怎么用

                  开发:临时变量   

                                   int temp = a;

                                   a = b;

                                   b = temp;

                  面试: ^运算符

                                   a = a^b;

                                   b = a^b;//= a^b ^b;

                                   a = a^b;//=a^b ^a;

4、if语句(掌握)

    1、使用场景(理解)

                1、常见于对某个范围进行判断

                2、几个变量判断

                3boolean类型表达式的判断

    2、格式

                          A:第一种格式

                                       if(条件表达式)

                                       {

                                              语句体;

                                        }

                                执行流程 : 自己总结                               
                         这里知道被{}包裹起来的就是代码块就可以了

                          B:第二种格式

                                       if(条件表达式)

                                       {

                                               语句体;

                                        }else{

                                               语句体;

                                        }

                                执行流程 : 自己总结

                                 

                         C:第三种格式

                                       if(条件表达式)

                                       {

                                               语句体;

                                        }else if(条件表达式2)

                                        {

                                                语句体;

                                        }else{

                                                 语句体;

                                        }

                                   执行流程 : 自己总结

    3、注意事项

                          什么时候用哪一种if语句

                                   第一种格式在判断条件为一种情况下使用

                                   第二种格式在判断条件为两种情况下使用

                                   第三种格式在判断条件为多种情况下使用

                          每一种if语句其实都是一个整体,如果有地方执行了,其他的就不执行了

                          如果if或者else里面控制的语句体是一条语句是可以省略大括号的,但是,如果是控制多条语句,必须加上大括号

                                   建议:永远写上大括号       

                          大括号和分号一般不同时出现

    4、作用域

                          所有变量的定义只在它所属的大括号内有效

5switch语句(掌握)

        1、用途(理解) 

                一般用于几个常量的判断,并且对于几个常量的判断switch的效率高于if

                  因为switch会把几个常量值直接加载到内存,在判断的时候效率要比if

                  所以,针对几个常量的判断,一般选择switch语句          

        2、switch语句的格式

                  switch(表达式)

                  {

                          case 1:

                                   语句体1;

                                   break;

                          case 2:

                                   语句体2;

                                   break;

                          。。

 

                          default:

                                   语句体n;

                                   break;

                    }

                A 针对格式的解释

                     1Switch表示这里使用的是switch语句,后面跟的是选项

                             表达式:byte,short,int,char

                             JDK5以后可以是枚举(就业班讲)

                             Jdk7以后可以是字符串(后面讲)

                     2case表示的这里就是选项的值

                          他后面的值将来和表达式里的值匹配

                             case后面的值是不能够重复的

                      3、break:

                              switch语句执行到这里就结束了

                      4default

                              当所有的case和表达式都不匹配的时候,就走default的内容

                              它相当于if语句的else.一般不建议省略

                执行流程

                           首先拿表达式中的值与case后面的值匹配,

                           如果有就执行对应的case里面的内容,直到遇到breakswitch语句被执行完毕才会停止

                           如果没有匹配项,但是有default,就会执行default里面的内容,直到遇到breakswitch语句被执行完毕才会停止                          

                        (注意:匹配一次成功后不再匹配

                注意事项

                          A、defult整体可以省略吗

                              可以,但是不建议

                          B、default的位置可以放到前面吗?

                              可以,但是不建议

                          C、break可以省略吗

                              可以,但是不建议

                             default在最后,break是可以省略的

                             case后面的break可以省略,但是结果可能有问题

                          D、switch语句什么时候结束

                              遇到break或者执行到switch语句的末尾

6、if 和 switch对比(理解)

A、switch建议判断固定值的时候使用,if建议判断区间或范围的时候用         

B、案例:分别用switch和if实现下列需求              

键盘录入月份,输出对应的季节(见最下面代码)

7、条件运算符和if语句第二种格式替换(掌握)

    在某些情况下条件运算符可以和if语句第二种格式相互替换 : 在给变量赋值的情况下可以替换          

    条件运算符可以看作if语句第二种格式的简写,既然是简写就会有弊端:                

            1、条件运算符是运算符,所以必须有结果,但是if语句是流程控制语句,可以直接输出一些内容                

            2、条件运算符的执行效率比if语句第二种格式低,这个了解就好(了解)

8Scanner的使用(掌握)

    1、概述

                Scanner JDK5以后设计的用来接收键盘录入数据使用的

    2、使用步骤

                目前我们要通过键盘录入int类型数据,必须按照如下步骤

                  第一步 导包

                         import java.util.Scanner;

                  第二步 创建对象,封装键盘录入

                          Scanner sc = new Scanner(System.in);

                  第三步 调用方法,获取数据

                         int number = sc.nextInt();  

        以后的课程会详细讲,所以现在只需要知道如何从控制台获取int类型数据即可

  1. import java.util.Scanner;//第一步:导包
  2. class Demo{
  3. public static void main(String[] args){
  4. //第二步:创建Scanenr变量
  5. Scanner scanner = new Scanner(System.in);
  6. //第三步:通过调用scanner变量的nextInt()方法获取用户录入的数据,并且将用户录入的数据赋值给num
  7. int num = scanner.nextInt();
  8. //打印键盘录入的数据
  9. System.out.println(num);
  10. }
  11. }

9、今日课堂必掌握案例(敲熟)

     if案例

1、根据键盘录入的成绩,判断等级

2、根据键盘录入的月份,输出该月份所对应的季节  

     switch案例

3、根据键盘录入的日期(1-7),输出对应的星期

4、根据键盘录入的月份,输出该月份所对应的季节

10、今天必须掌握的内容。以及常见的笔试题和面试题(学完这个就可以放心学习后面的知识了)

1、独立使用常见的运算符!=,==,>,<,>=,<=,&&,||,!
2、说说&&和&的区别,||和|的区别
3、互换两个数的两种方式
4、最快的方法求2*8
5、根据键盘录入的成绩,判断等级
  1. import java.util.Scanner;
  2. /**
  3. * 键盘录入一个成绩,判断并输出成绩的等级
  4. * @author haoyongliang
  5. *
  6. */
  7. public class Demo {
  8. public static void main(String[] args) {
  9. System.out.println("请输入学生成绩范围在1到100之间");
  10. Scanner sc = new Scanner(System.in);
  11. int x = sc.nextInt();
  12. if (x >= 90 && x <= 100) {
  13. System.out.println("优");
  14. }else if (x >= 80 && x <= 89 ) {
  15. System.out.println("良");
  16. }else if (x >= 70 && x <= 79 ) {
  17. System.out.println("中");
  18. }else if (x >= 60 && x <= 69 ) {
  19. System.out.println("及");
  20. }else if (x >= 0 && x <= 59 ) {
  21. System.out.println("差");
  22. }else {
  23. System.out.println("成绩录入错误");
  24. }
  25. }
  26. }

6、根据键盘录入的月份,输出该月份所对应的季节,用if实现
  1. import java.util.Scanner;
  2. /**
  3. * 根据键盘录入的月份,输出该月份所对应的季节,用if实现一年有四季
  4. 3,4,5春季
  5. 6,7,8夏季
  6. 9,10,11秋季
  7. 12,1,2冬季
  8. * @author haoyongliang
  9. *
  10. */
  11. public class Demo {
  12. public static void main(String[] args) {
  13. System.out.println("请输入学生成绩范围在1到100之间");
  14. Scanner sc = new Scanner(System.in);
  15. int month = sc.nextInt();
  16. if (month > 12 || month < 1) {
  17. System.out.println("对不起没有对应的季节");
  18. } else if (month >= 3 && month <= 5) {
  19. System.out.println(month + "月是春季");
  20. } else if (month >= 6 && month <= 8) {
  21. System.out.println(month + "月是夏季");
  22. } else if (month >= 9 && month <= 11) {
  23. System.out.println(month + "月是秋季");
  24. } else {
  25. System.out.println(month + "月是冬季");
  26. }
  27. }
  28. }


7、根据键盘录入的日期(1-7),输出对应的星期
  1. import java.util.Scanner;
  2. /**
  3. * 根据键盘录入的日期(1-7),输出对应的星期
  4. *
  5. * @author haoyongliang
  6. *
  7. */
  8. public class Demo {
  9. public static void main(String[] args) {
  10. // week:星期
  11. int week = 1;
  12. switch (week) {
  13. case 1:
  14. System.out.println("星期一");
  15. break;
  16. case 2:
  17. System.out.println("星期二");
  18. break;
  19. case 3:
  20. System.out.println("星期三");
  21. break;
  22. case 4:
  23. System.out.println("星期四");
  24. break;
  25. case 5:
  26. System.out.println("星期五");
  27. break;
  28. case 6:
  29. System.out.println("星期六");
  30. break;
  31. case 7:
  32. System.out.println("星期日");
  33. break;
  34. default:
  35. System.out.println("对不起没有对应的星期");
  36. break;
  37. }
  38. }
  39. }

8、根据键盘录入的月份,输出该月份所对应的季节,用switch实现
  1. import java.util.Scanner;
  2. /**
  3. * 键盘录入月份,输出对应的季节,用switch实现
  4. 一年有四季 3,4,5春季 6,7,8夏季 9,10,11秋季 12,1,2冬季
  5. * @author haoyongliang
  6. *
  7. */
  8. public class Demo {
  9. public static void main(String[] args) {
  10. Scanner sc = new Scanner(System.in); // 创建键盘录入对象
  11. System.out.println("请输入月份");
  12. int month = sc.nextInt(); // 将键盘录入的结果存储在month
  13. switch (month) {
  14. case 3:
  15. case 4:
  16. case 5:
  17. System.out.println(month + "月是春季");
  18. break;
  19. case 6:
  20. case 7:
  21. case 8:
  22. System.out.println(month + "月是夏季");
  23. break;
  24. case 9:
  25. case 10:
  26. case 11:
  27. System.out.println(month + "月是秋季");
  28. break;
  29. case 12:
  30. case 1:
  31. case 2:
  32. System.out.println(month + "月是冬季");
  33. break;
  34. default:
  35. System.out.println("对不起没有对应的季节");
  36. break;
  37. }
  38. }
  39. }









来自为知笔记(Wiz)


Day03_JAVA语言基础第三天