JAVA_TOJAVASE_Day03

逻辑运算符有什么用?
用于连接俩个boolean类型的表达式
&:与
|:或

&:与符号的运算特点:
true & true =true
true & false =false
fase&true=false
false&false=false
&:与运算的俩边只要有一个是false,结果肯定是false
只有俩边都是true 结果才是true

|:或运算特点
运算的俩边只要有一个true,结果肯定是true
只有俩边都是false,结果才是false

^:异或: 和或有点不一样
true^true=false;
false^false=false;
运算特点:
^符号的俩边的结果如果相同,结果是false
俩边的结果不同,结果是true

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

&&:
和& 运算的结果是一样的。但是运算过程有点小区别。
&: 无论左边的运算结果是什么,右边都参与运算
&&:当左边为false时,右边不参与运算的。
||:
和|运算的结果一样的。但是运算过程有点小区别
|: 无论左边的运算结果是什么,右边都参与运算
||:当左边为true时,右边不参与运算的。

位运算符
这里写图片描述

位运算是直接对二进制进行运算。

6&3 这个怎么运算啊?

首先6是二进制的 110
然后3是二进制的 011
对于数字的与操作
注意: 对于0代表着假,1代表着真
所以如下:
这里写图片描述
或运算
或运算

异或 整数
这里写图片描述

<<左移
首先3的2进制的是011 ,3<<2 左移2位
这里写图片描述
总结:左移几位,就是该数据乘以2的几次方。
右移几位,就是该数据除以2的几次方。对于高位出现的空位,原来是什么就用什么来补。这个是对于右移的。

无符号右移:数据右移时,高位出现的空位,无论高位是什么都用0来补位。

练习:
1.最有效的方式算出2*8等于几?
答案是2<<3 .对于高效算出数据首选位移运算。
2.对俩个整数变量的值进行互换(需要第三方变量)
这里写图片描述
答案:(答案是高效但是可阅读性差)
这里写图片描述

三元运算符

这里写图片描述

程序的流程控制

这里写图片描述
其实还有一个就是顺序结构从上到下。自己运行就可以了

判断结构
这里写图片描述

三元运算符什么时候用?
当if else 运算后,有一个运算结果时,可以简化成三元运算符。

局部代码块,可以定义局部生命周期,可以用作优化,虚拟机内存空间有限。
这里写图片描述
if else 的使用
这里写图片描述

siwtch语句

switch (key) {
        case value:

            break;
        case value2:

            break;
        default:
            break;
        }
  • 首先这里的key就是一个表达式,另外在switch语句中可以省略break语句,但是有一个要求,这个break必须挨着} 也就是上面的语句示例,只有default中的break可以去掉如下:
switch (key) {
        case value:

            break;
        case value2:
            执行语句
            break;
        default:
            执行语句
            //break;
        }
  • 然后就是switch语句的执行是从上到下,也就是说首先执行第一个case。如果把defalut语句放到最上面也是先执行case value:

下面看下一个例子:
这里写图片描述
如图所示那么输出的语句是什么呢?
首先x=2,在几个case中没有合适的值,所以首先执行的是defalut中的语句,也就是首先输出的是d,因为在defalut中没有break语句所以不会结束,它会接着执行直到遇到break。所以输出的结果是: d a b

下面在来看下用switch 语句输出季节:

这里写图片描述

对于输入月份输出季节用了if else 和switch 俩种方式进行解决。那么什么时候该用if else 什么时候该用switch呢?
这里写图片描述

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

java基础 循环

这里写图片描述

    /**
     * While(条件表达式)
     * {
     *      执行语句;
     * }
     */

do while语句的特点是:无论条件是否满足,循环体至少执行一次。


/***
     * do
     * {
     *  执行语句;
     * }while(条件表达式);
     */
    do {
            System.out.println("6");
            ++i;
        }while(i<0);

练习

/**
     * 练习1~100之间,6的倍数出现的次数
     * 
     * 思路:
     * 首先把每个数拿出来,然后查看是否是6的倍数。条件是 6的倍数就是余数是0
     * 
     * 步骤:
     * 1.首先循环1~100
     * 2.输出所有六的倍数
     * 3.记录输出的次数。
     * @param args
     */
    public static void main(String[] args) {
        int i=1;
        int count=0;
        while(i<=100) {
            if(i%6==0) {

                ++count;
            }
            ++i;
        }
        System.out.println(count);
    }

for循环
这里写图片描述

不是所有的for循环都是以下这样的:

    for(int i=0;i<3;i++) {
            System.out.println("6");
        }

也可以这样的:

    int x=1;
        for(System.out.println("?");x<3;System.out.println("A")) {
            System.out.println("d");
            x++;
        }
        输出的结果是:? d A d A
int x=1;
int y=2;
        for(int z=y>x?y:x;z<8;z++) {
            System.out.println("z"+z);
        }
        结果是:
        z3
        z4
        z5
        z6
        z7

for 和while 的特点:
1.for和while可以互换
2.格式上的不同,在使用上有点小区别.
如果需要通过变量来对循环进行控制,该变量只作为循环增量存在时,区别就体现出来了。
打印1~10的数字

        int x = 1;
        while (x < 11) {
            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); //这里在编译会出错,for循环结束后y就不存在了,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值