day03

03.01 逻辑运算符的基本用法(掌握)

 

 

 

A:逻辑运算符有哪些
  * &  ,  |  ,  ^  ,  !
    * &&  ,  || 
B:案例演示
逻辑运算符的基本用法
    
注意事项:
*  a:逻辑运算符一般用于连接boolean类型的表达式或者值。
  *  b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
        *  算术表达式:a + b
        *  比较表达式:a == b(条件表达式)
C:结论:
*  &逻辑与:有false则false。
*  |逻辑或:有true则true。
*  ^逻辑异或:相同为false,不同为true。
*  !逻辑非:非false则true,非true则false。

    * 特点:偶数个不改变本身。

 

	int a = 5;
	int b = 10;
	System.out.println((a<b)&(a>b));//false
	System.out.println((a<b)|(a>b));//true
	System.out.println((a<b)^(a>b));//true
	System.out.println(!(a<b));//falseint a = 5;
	int b = 10;
	System.out.println((a<b)&(a>b));//false
	System.out.println((a<b)|(a>b));//true
	System.out.println((a<b)^(a>b));//true
	System.out.println(!(a<b));//false

 

 

03.02 逻辑运算符&&和&的区别(掌握)

A: &&和&的异同?

* a:最终结果一样。
b:&&具有短路效果。左边是false,右边不执行。
       &是无论左边是false还是true,右边都会执行

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

 

03.03 位运算符的基本用法1(了解)

A:位运算符有哪些

*  &  ,  |  ,  ^  ,  ~   ,  >>  ,  >>>  ,  <<

B:案例演示

* &,|,^,~ 的用法

* &:有0则0

* |:有1则1

* ^:相同则0,不同则1

* ~:按位取反

* >>> :解析: http://blog.csdn.net/cobbwho/article/details/54907203

 

03.04_Java语言基础(位异或运算符的特点及面试题)(掌握)

A:案例演示

* 位异或运算符的特点
* ^的特点:一个数据对另一个数据位异或两次,该数本身不变。
 B:面试题:
* 请实现两个整数变量的交换

 

		int a = 4;
		int b = 10;
		//第一种
		int temp;
		temp = a;
		a = b;
		b = temp;
	
		//第二种
		a = a+b;
		b = a-b;
		a = a-b;

		//第三种(最好)
		a = a^b;
		b = a^b;
		a = a^b;
		System.out.println(a+" "+b);int a = 4;
		int b = 10;
		//第一种
		int temp;
		temp = a;
		a = b;
		b = temp;
	
		//第二种
		a = a+b;
		b = a-b;
		a = a-b;

		//第三种(最好)
		a = a^b;
		b = a^b;
		a = a^b;
		System.out.println(a+" "+b);

 

 

 

 

03.05 位运算符的基本用法2及面试题(了解)

A : >>,>>>,<<的用法:

*  <<:左移    左边最高位丢弃,右边补齐0,左移扩大
    *  >>:右移    最高位是0,左边补齐0;最高为是1,左边补齐1,右移缩小
   *  >>>:无符号右移 无论最高位是0还是1,左边补齐0
     *  最有效率的算出2 * 8的结果

03.06 三元运算符的基本用法(掌握)

 A:三元运算符的格式
*(关系表达式) ? 表达式1 : 表达式2;
 B:三元运算符的执行流程 
C:案例演示
     * 获取两个数中的最大值

03.07 三元运算符的练习(掌握)

比较两个整数是否相同

获取三个整数中的最大值

 

	int a = 10;
	int b = 20;
	int c = 30;
	System.out.println("最大值为:"+(a>b?(a>c?a:c):(b>c?b:c)));int a = 10;
	int b = 20;
	int c = 30;
	System.out.println("最大值为:"+(a>b?(a>c?a:c):(b>c?b:c)));


03.08 键盘录入的基本格式讲解(掌握)

 

 

 

  A: 为什么要使用键盘录入数据
     * a:为了让程序的数据更符合开发的数据
      * b:让程序更灵活一下

B: 实现键盘录入步骤:

* a.导包:import java.util.Scanner;

* b.创建对象:Scanner sc = new Scanner(System.in);

* c.通过对象获取数据: int x = sc.nextInt();

03.09 键盘录入的练习

键盘录入两个数据,并对这两个数据求和,求最大值等

 

		Scanner sc = new Scanner(System.in);
		System.out.println("请输入a的值:");
		int a = sc.nextInt();
		System.out.println("请输入b的值:");
		int b = sc.nextInt();
		System.out.println("a,b的和为:"+(a+b));
		System.out.println("a,b的最大值为:"+(a>b?a:b));
		System.out.println("a,b是否相等:"+(a==b?"相等":"不相等"));
		System.out.println("请输入c的值:");
		int c = sc.nextInt();
		System.out.println("a,b,c的最大值为:"+(a>b?(a>c?a:c):(b>c?b:c)));Scanner sc = new Scanner(System.in);
		System.out.println("请输入a的值:");
		int a = sc.nextInt();
		System.out.println("请输入b的值:");
		int b = sc.nextInt();
		System.out.println("a,b的和为:"+(a+b));
		System.out.println("a,b的最大值为:"+(a>b?a:b));
		System.out.println("a,b是否相等:"+(a==b?"相等":"不相等"));
		System.out.println("请输入c的值:");
		int c = sc.nextInt();
		System.out.println("a,b,c的最大值为:"+(a>b?(a>c?a:c):(b>c?b:c)));

 

 

 

03.11 顺序结构语句(了解)

A:什么是流程控制语句

    * 流程控制语句:可以控制程序的执行流程。

B:流程控制语句的分类

    * 顺序结构

    * 选择结构

    * 循环结构

C:执行流程:

    * 从上往下,依次执行。

 

03.12 选择结构if语句格式1及其使用(掌握)
A:选择结构的分类
     * if语句
      * switch语句
B:if语句有几种格式
   * 格式1
     * 格式2
     * 格式3
C:if语句的格式1
*`
         if(比较表达式) {
              语句体;
          }
 D:执行流程:
     * 先计算比较表达式的值,看其返回值是true还是false。
     * 如果是true,就执行语句体;
     * 如果是false,就不执行语句体;

03.13 选择结构if语句注意事项(掌握)
A:案例演示
    * a:比较表达式无论简单还是复杂,结果必须是boolean类型
     * b:if语句控制的语句体如果是一条语句,大括号可以省略;
       * 如果是多条语句,就不能省略。建议永远不要省略。
    * c:一般来说:有左大括号就没有分号,有分号就没有左大括号

03.14 选择结构if语句格式2及其使用(掌握)

  A:if语句的格式2
         if(比较表达式) {
             语句体1;
          }else {
             语句体2;
         }
B:执行流程:
     * 首先计算比较表达式的值,看其返回值是true还是false。
     * 如果是true,就执行语句体1;
     * 如果是false,就执行语句体2;
C:案例演示
     * a:获取两个数据中较大的值
     * b:判断一个数据是奇数还是偶数,并输出是奇数还是偶数

     * 注意事项:else后面是没有比较表达式的,只有if后面有。

    

03.15 if语句的格式2和三元的相互转换问题(掌握)
A:案例演示
   * if语句和三元运算符完成同一个效果
B:案例演示
     * if语句和三元运算符的区别
      * 三元运算符实现的,都可以采用if语句实现。反之不成立。
    
     * 什么时候if语句实现不能用三元改进呢?
         * 当if语句控制的操作是一个输出语句的时候就不能。
        * 为什么呢?因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。

###03.16_Java语言基础(选择结构if语句格式3及其使用)(掌握)
A:if语句的格式3:

        if(比较表达式1) {

            语句体1;

        }else if(比较表达式2) {

            语句体2;

        }else if(比较表达式3) {

            语句体3;

        }

        ...

        else {

            语句体n+1;

        }

 B:执行流程:
     * 首先计算比较表达式1看其返回值是true还是false,
     * 如果是true,就执行语句体1,if语句结束。
     * 如果是false,接着计算比较表达式2看其返回值是true还是false,
    
     * 如果是true,就执行语句体2,if语句结束。
  * 如果是false,接着计算比较表达式3看其返回值是true还是false,
    
     * 如果都是false,就执行语句体n+1。
C:注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示 


03.17 选择结构if语句格式3练习(掌握)

 A:练习1
       需求:键盘录入一个成绩,判断并输出成绩的等级。
       90-100 优
        80-89  良
         70-79  中
         60-69  及
        0-59   差

		Scanner sc = new Scanner(System.in);
		System.out.println("请输入成绩:");
		int grade = sc.nextInt();
		char level;
		if(grade>=90 && grade<=100){
			level = '优';
		}else if(grade>=80){
			level = '良';
		}else if(grade>=70){
			level = '中';
		}else if(grade>=60){
			level = '及';
		}else if(grade>=0){
			level = '差';
		}else{
			level = '无';Scanner sc = new Scanner(System.in);
		System.out.println("请输入成绩:");
		int grade = sc.nextInt();
		char level;
		if(grade>=90 && grade<=100){
			level = '优';
		}else if(grade>=80){
			level = '良';
		}else if(grade>=70){
			level = '中';
		}else if(grade>=60){
			level = '及';
		}else if(grade>=0){
			level = '差';
		}else{
			level = '无';
		}
		System.out.println("该同学成绩为"+level);}
		System.out.println("该同学成绩为"+level);

 

 

 

 B:练习2
     * 需求:
         * 键盘录入x的值,计算出y的并输出。
        * x>=3    y = 2 * x + 1;
         * -1<x<3    y = 2 * x;
          * x<=-1    y = 2 * x - 1;

 

		Scanner sc = new Scanner(System.in);
		System.out.println("请输入x的值:");
		int x = sc.nextInt();
		int y;
		if(x>=3){
			y = 2*x+1;
		}else if(x>-1){
			y = 2*x;
		}else{
			y = 2*x-1;
		}
		System.out.println("y的值为:"+y);Scanner sc = new Scanner(System.in);
		System.out.println("请输入x的值:");
		int x = sc.nextInt();
		int y;
		if(x>=3){
			y = 2*x+1;
		}else if(x>-1){
			y = 2*x;
		}else{
			y = 2*x-1;
		}
		System.out.println("y的值为:"+y);


C : 练习3

 

* 需求:获取三个数据中的最大值

 

		Scanner in = new Scanner(System.in);
		System.out.println("请输入a的值为:");
		int a = in.nextInt();
		System.out.println("请输入b的值为:");
		int b = in.nextInt();
		System.out.println("请输入c的值为:");
		int c = in.nextInt();
		int max;
		if(a>b && a>c){
			max = a;
		}else if(b>c){
			max = b;
		}else{
			max = c;
		}
		System.out.println("a,b,c的最大值为:"+max);Scanner in = new Scanner(System.in);
		System.out.println("请输入a的值为:");
		int a = in.nextInt();
		System.out.println("请输入b的值为:");
		int b = in.nextInt();
		System.out.println("请输入c的值为:");
		int c = in.nextInt();
		int max;
		if(a>b && a>c){
			max = a;
		}else if(b>c){
			max = b;
		}else{
			max = c;
		}
		System.out.println("a,b,c的最大值为:"+max);


03.19 选择结构switch语句的格式及其解释(掌握)

 

 

 

 A:switch语句的格式

        switch(表达式) {

              case 值1:

                语句体1;

                break;

                case 值2:

                语句体2;

                break;

                …

                default:    

                语句体n+1;

                break;

        }

B : switch接受的参数类型

     byte,short,int,char,Byte,Short,Integer,Character,enum,String(1.7以上)

C : 面试题

    * byte可以作为switch的表达式吗?

    * long可以作为switch的表达式吗? 不可以

    * String可以作为switch的表达式吗?

 D : 执行流程

    * 先计算表达式的值

    * 然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句

 

03.20 选择结构switch语句的练习(掌握)

整数(给定一个值,输出对应星期几)   

 

		Scanner in = new Scanner(System.in);
		System.out.println("请输入一个(1~7的数):");
		int num = 0;
		num = in.nextInt();
		switch (num){
			case 1:
				System.out.println("星期一");
				break;
			case 2:
				System.out.println("星期二");
				break;
			case 3:
				System.out.println("星期三");
				break;
			case 4:
				System.out.println("星期四");
				break;
			case 5:
				System.out.println("星期五");
				break;
			case 6:
				System.out.println("星期六");
				break;
			default:
				System.out.println("星期日");Scanner in = new Scanner(System.in);
		System.out.println("请输入一个(1~7的数):");
		int num = 0;
		num = in.nextInt();
		switch (num){
			case 1:
				System.out.println("星期一");
				break;
			case 2:
				System.out.println("星期二");
				break;
			case 3:
				System.out.println("星期三");
				break;
			case 4:
				System.out.println("星期四");
				break;
			case 5:
				System.out.println("星期五");
				break;
			case 6:
				System.out.println("星期六");
				break;
			default:
				System.out.println("星期日");

 

 

 

 

03.21_Java语言基础(选择结构switch语句的注意事项)(掌握)
A:案例演示
     * a:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
     * b:default可以省略吗?
         * 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
         *特殊情况:
             * case就可以把值固定。
             * A,B,C,D
     * c:break可以省略吗?

         * 最后一个可以省略,其他最好不要省略

         * 会出现一个现象:case穿透。

         * 最终我们建议不要省略

     * d:default一定要在最后吗?

         * 不是,可以在任意位置。但是建议在最后。

     * e:switch语句的结束条件
          * a:遇到break就结束了
         * b:执行到switch的右大括号就结束了

03.22_Java语言基础(选择结构switch语句练习)(掌握)

A:看程序写结果:

        int x = 2;

        int y = 3;

        switch(x){

            default:

                y++;

                break;

            case 3:

                y++;

            case 4:

                y++;

        }

        System.out.println("y="+y);

总结: y=4:先找case,再找default    

 

 

B:看程序写结果:

        int x = 2;

        int y = 3;

        switch(x){

            default:

                y++;

            case 3:

                y++;

            case 4:

                y++;

        }

        System.out.println("y="+y);

总结:y=6:先找case,再找default,最后从上而下依次执行

  

03.23_Java语言基础(选择结构if语句和switch语句的区别)(掌握)

A:总结switch语句和if语句的各自使用场景

*   switch建议判断固定值的时候用

*   if建议判断区间或范围的时候用

 B:案例演示

    * 分别用switch语句和if语句实现下列需求:

        * 键盘录入月份,输出对应的季节

 

 

 

 

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值