day03_java基础



第十六讲

比较运算符,比较运算符返回的是布尔类型,要么是ture,要么是false

例如:3>2则是返回true

 

逻辑运算符有什么用?

              用于连接两个boolean类型的表达式。

 

 

/*

              比较运算符,运算完的结果必须是true或者false。

              */

//            System.out.println(3>2);//true

//            System.out.println(3==2);//false

 

//            2<x<5  x>2 x<5

 

              /*

              逻辑运算符有什么用?

              用于连接两个boolean类型的表达式。

             

              &:与

              |:或

 

              &:符号的运算特点:

             

              true & true = true;

              true & false = false;

              false & true = false;

              false & false = false;

              &:运算规律:

              &运算的两边只有有一个是false,结果肯定是false。

              只有两边都为true,结果才是true。

 

              |:运算特点:

              true | true = true;

              true | false = true;

              false | true = true;

              false | false = false;

              |:运算规律:

              |运算的两边只要有一个是true,结果肯定是true。

              只有两边都为false。结果是false。

 

 

 

              ^:异或:和或有点不一样。

              ^:运算特点。

              true ^ true = false;

              true ^ false = true;

              false ^ true = true;

              false ^ false = false;

              ^异或的运算规律:

              ^符号的两边结果如果相同,结果是false。

                     两边的结果不同,结果是true。

 

              !:非运算,判断事物的另一面。

              !true = false

              !false = true;

 

              !!true = true;

 

 

              面试题:

              &&:

                     &运算的结果是一样的。但是运算过程有点小区别。

 

                     &:无论左边的运算结果是什么,右边都参与运算。

                     &&:当左边为false时,右边不参与运算的。

 

             

              ||:

                     |运算的结果是一样的。但是运算过程有点小区别。

 

                     |:无论左边的运算结果是什么,右边都参与运算。

                     ||:当左边为true时,右边不参与运算的。


<<:相当于乘与2的倍数

>>:相当于除以2的倍数

移n位,就是对乘以或者除以2的n次幂。


技巧:二进制1就是true0就是false

 

位运算符:主要是用于二进制运算的符号

事例6&3结果:2

进行位运算要先转成二进制,一个整数32进制位吗

分析:其实是这样的

 110

&011

----------------

  010===2

异或的秒用:用于加解密用

6^3^3 = 6

一个数异或同一个数两次,结果还是这个数

 

 

<<:相当于乘与2的倍数

>>:相当于除以2的倍数

n位,就是对乘以或者除以2n次幂。

事例:

3<<2 = 12        3<<3 = 24  左移几位其实就是该数据乘以2的几次方,<<可以完成2的次幂运算

6>>1 = 3         6>>2 = 1   右移几位,其实就是该数据除以2的几次幂;>>对于高位出现的空位,原来的高位是什么就用什么补这个空位

>>>   被移位二进制最高位无论是0或者是1,空缺位都用0补。


位运算练习

  .最有效率的方式算出2乘以8等于几?

你只要想运算高效那么首选就是位运算,直接操作二进制位,不做乘动作,发现8正好是2倍数,只要是涉及到2的倍数的,全都移位运算

 

2.对两个整数变量的值进行互换(不需要第三方变量)

 

 

对两个整数变量的值进行互换(不需要第三方变量)

              int a = 3,b = 5;

              System.out.println("a="+a+",b="+b);

 

              /*

              开发时,使用第三方变量的形式,因为阅读性强。

              int c ;

              c = a;

              a = b;

              b = c;

              */

 

 

              //这种方式不要用,如果两个整数的数值过大,会超出int范围,会强制转换。数据会变化。

              /*

              a = a + b; //a = 3 + 5;a = 8;

              b = a - b; //3+5-5 = 3;b = 3;

              a = a - b; //3+5-3 = 5;a = 5;

              */

             

              /*

              面试的时候用。

              a= a ^ b; //a = 3 ^ 5;

              b= a ^ b; //b = (3^5)^5; b = 3;

              a= a ^ b; //a = (3^5)^3; a = 5;

              */

              System.out.println("a="+a+",b="+b);

异或的特点,如果一个数异或同一个数两次,还是原来的数,就是利用的这个特点





if的使用

简写格式什么时候用?

//                   当ifelse运算后,有一个具体的结果时,可以简化写成三元运算符。

 

{//局部代码块可以定义局部变量的生命周期。

              int a = 3;

              //a 的运算。

              System.out.println(a+4);

}

重要:

int x = 3;

        if(x>1)

            System.out.println("a");

        else if(x>2)

            System.out.println("b");

        else if(x>3)

            System.out.println("c");

        else

            System.out.println("d");

输出结果是a就只有a,因为if条件是执行一个,要执行下面的elseif必须是上面的if不满足才执行,满足了就不执行了

 

int y = 3;

        if(y>1)

            System.out.println("a1");

        if(y>2)

            System.out.println("b1");

        if(y>3)

            System.out.println("c1");

        else

            System.out.println("d1");

下面的输入结果又不同是a1,b1,d1

简单点来说,if条件句就类似于判断题,只有一个结果,switch就类似于选择题可以是多个,可以是多选也可以是单选



 int x = 2;

              switch(x)//byte,short,int,char.

              {

                     default:

                            System.out.println("d");

                            //break;

                     case 4:

                            System.out.println("a");

                            //break;

                     case 1:

                            System.out.println("b");

                            break;

                     case 3:

                            System.out.println("c");

                            break;

                    

              }

结果d a b c

Swithcasedefault之间没有顺序,但是也是执行却是有序,无论如何都是先执行第一个case


if和switch的应用:

 

if:

       1,对具体的值进行判断。

       2,对区间判断。

       3,对运算结果是boolean类型的表达式进行判断。

 

switch:

       1,对具体的值进行判断。

       2,值的个数通常是固定的。

       对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存。

       效率相对高一点。

 

for练习&for和while的区别

/*

              for和while的特点:

              1,for和while可以互换。

              2,格式上的不同,在使用上有点小区别。

                     如果需要通过变量来对循环进行控制,该变量只作为循环增量存在时,区别就体现出来了。

              */

 

              //打印1~10十个数字

              int x = 1;

              while(x<5)

              {

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

                     x++;

              }

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

 

              for(int y=1; y<5; y++)

              {

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

              }

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

              //无限循环最简单的形式。

//            while(true){}

 

//            for(;;){}

 

              什么时候使用循环结构呢?

              当对某些代码执行很多次时,使用循环结构完成。

             

              当对一个条件进行一次判断时,可以使用if语句。

              当对一个条件进行多次判断时,可以使用while语句。

 

              注意:

                     在使用循环时,一定要明确哪些语句需要参与循环,哪些不需要。

                     循环通常情况下,需要定义条件,需要控制次数。

 




While循环练习:

 练习:

        获取1到10 10个数字的和。

练习:

        1~100之间 6的倍数出现的次数。

        要求:自己独立完成思想的书写。和步骤的文字描述。

 

 

day03

学习结果:

1,逻辑运算符什么时候用?

 

 

2,&和&&有什么区别?

 

 

3,如何理解位运算符中 & 和 |,^,你认为什么时候会用到?

 

4,>>  <<移位运算符的特点是什么?什么时候用?

 

 

5,三元运算符和if else语句的区别?使用场景?

 

 

6,if和switch和循环结构的应用场景。

 

 

7,switch语句都有哪些特点?

 

 

8,for和while的区别。

 

 

9,局部代码块有什么用?什么时候用?

 

 

 

 

 

 

class Test

{

       publicstatic void main(String[] args)

       {

              /*

              3000米长的绳子,每天减一半,问,需要多少天,绳子会小于5米?

              思路:

              1,绳子长度在变化,定义变量记录绳子长度的变化,而且这个变量的初始化值时3000.

                既然不考虑小数部分,所以可以定义int类型变量

              2,多少天,不确定,是一个变量.

              3,每天减一半,这时对绳子长度的运算,只要可以减一半,就算一天。

                     这就让我想到了一个小思想,就是传说中的计数器思想。

              4,天数的递增,减一半的动作在重复的执行,使用循环结构。

              5,直到小于5米,重复动作结束。这就是循环的条件。

 

              */

             

              int day = 0;

 

              for(int x=3000;x>=5; x = x/2)

              {

                     day++;

                    

              }

 

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

 

 

 

              System.out.println("HelloWorld!");

 

 

              //将这个运算过程画出来。你从这个代码运算规律中发现了什么?总结了什么思想?

 

 

              for(int x=0; x<3; x++)

              {

                     for(inty=0; y<5; y++)

                     {

                            System.out.print("*");

                     }

                     System.out.println();

              }

       }

}

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值