Day03_JAVA语言基础第三天

本文详细介绍了Java中的位运算、逻辑运算、条件运算等基础运算符的应用,并通过实例展示了if语句、switch语句的使用场景及注意事项。

 

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、注意事项

                          A 什么时候用哪一种if语句

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

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

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

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

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

                                   建议:永远写上大括号       

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

    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. classDemo{
  3. publicstaticvoid main(String[] args){
  4. //第二步:创建Scanenr变量
  5. Scanner scanner =newScanner(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. publicclassDemo{
  8. publicstaticvoid main(String[] args){
  9. System.out.println("请输入学生成绩范围在1到100之间");
  10. Scanner sc =newScanner(System.in);
  11. int x = sc.nextInt();
  12. if(x >=90&& x <=100){
  13. System.out.println("优");
  14. }elseif(x >=80&& x <=89){
  15. System.out.println("良");
  16. }elseif(x >=70&& x <=79){
  17. System.out.println("中");
  18. }elseif(x >=60&& x <=69){
  19. System.out.println("及");
  20. }elseif(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. publicclassDemo{
  12. publicstaticvoid main(String[] args){
  13. System.out.println("请输入学生成绩范围在1到100之间");
  14. Scanner sc =newScanner(System.in);
  15. int month = sc.nextInt();
  16. if(month >12|| month <1){
  17. System.out.println("对不起没有对应的季节");
  18. }elseif(month >=3&& month <=5){
  19. System.out.println(month +"月是春季");
  20. }elseif(month >=6&& month <=8){
  21. System.out.println(month +"月是夏季");
  22. }elseif(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. publicclassDemo{
  9. publicstaticvoid main(String[] args){
  10. // week:星期
  11. int week =1;
  12. switch(week){
  13. case1:
  14. System.out.println("星期一");
  15. break;
  16. case2:
  17. System.out.println("星期二");
  18. break;
  19. case3:
  20. System.out.println("星期三");
  21. break;
  22. case4:
  23. System.out.println("星期四");
  24. break;
  25. case5:
  26. System.out.println("星期五");
  27. break;
  28. case6:
  29. System.out.println("星期六");
  30. break;
  31. case7:
  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. publicclassDemo{
  9. publicstaticvoid main(String[] args){
  10. Scanner sc =newScanner(System.in);// 创建键盘录入对象
  11. System.out.println("请输入月份");
  12. int month = sc.nextInt();// 将键盘录入的结果存储在month
  13. switch(month){
  14. case3:
  15. case4:
  16. case5:
  17. System.out.println(month +"月是春季");
  18. break;
  19. case6:
  20. case7:
  21. case8:
  22. System.out.println(month +"月是夏季");
  23. break;
  24. case9:
  25. case10:
  26. case11:
  27. System.out.println(month +"月是秋季");
  28. break;
  29. case12:
  30. case1:
  31. case2:
  32. System.out.println(month +"月是冬季");
  33. break;
  34. default:
  35. System.out.println("对不起没有对应的季节");
  36. break;
  37. }
  38. }
  39. }
 
 
 
 
 
 
 

 





转载于:https://www.cnblogs.com/haoyongliang/p/6159059.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值