zoukankan      html  css  js  c++  java
  • 2019-05-13 java学习日记

    May 13,2019 - JAVA 学习日记 Day3

    逻辑运算符

    逻辑运算符:与&,或|,异或^,非!;
    逻辑运算符的结果不是true就是false.
    &:并且的意思,或者叫and; 只有全是真,输出才为真,否则假。
    |:或的意思,或者叫or;遇true则true,否则false.
    ^:两边相同为false,任一边不同则true。
    !:!true = false,!! true = true.

    短路与&&&&与&的区别,最终结果一样,左边为false,则右边不执行。遇false则false,双与&&有短路效果。

    短路或||单或与双或的别,最终结果一样,左边为true,则右边不执行,遇true则true,双或 ||有短路效果。

    位运算符

    位运算符有:位与 &,位或|,位异或^,取反~,向右移>>(高位右移),>>>(无符号右移),向左移<<.
    位与 &:有0则0。
    位或 |:有1是1.
    位异或 ^:相同则0,不同则1.
    取反 ~:按位取反,高位也包括在内。如6:00000000 00000000 00000000 00000110 ;6的 原码补码都是本身。11111111 11111111 111111111 11111001;对6取反结果为-7.

    位异或的特点是一个数据对另一个数据位异或两次,该数本身不变。

    << :左移,左边最高位丢弃,右边补齐0,向左移动几位就是乘于2的几次幂如:12 << 1 ;得出24,12 << 2;得出48
         00000000 00000000 0000000 0000000 0001100   12的补码
    (0)   0000000 00000000 0000000 0000000 00110000   24的补码
    (00) 00000 00000000 0000000 0000000 0110000000   48的补码

    //>>:右移,最高位是 0,左边补齐0;最高位是1,左边补齐1.向左移动几位就是除于2的几次幂如:12 >> 1 ;得出6,12 >> 3;得出2
    00000000 00000000 0000000 0000000 00001100      12的补码
    000000000 00000000 0000000 0000000 0000110 (0)   24的补码
    0000000000 00000000 0000000 0000000 000011 (00)    48的补码

    />>>:无符号右移,无论最高位是0还1,左边补齐0

    三元运算符

    (关系、条件表达式) ? 表达式1 : 表达式2
    如果是true的话是表达式1的值赋于过去 ,false则表达式2的值赋于过去。获取两个数中的最大值。
    如:int x = 10; int y = 5;int z;
    z = (x > y) ? x : y;

    键盘录入的基本格式

    为什么要使用键盘录入数据?1,让程序的数据更符合开发的数据。2,让程序更灵活。

    如何实现键盘录入
    1,导包(格式:import java.util.Scanner;)。
    2,创建键盘录入对象(格式:Scanner sc=new Scanner(System.in);)。
    3,通过对象获取数据(格式:int x = sc.nextInt();)。

    顺序结构语句

    1,什么是流程控制语句流程控制语句就是可以控制程序的执行流程。
    2,流程控制语句的分类:顺序结构,选择结构,循环结构
    (1)顺序结构
    顺序结构的执行流程为从上往下,依次执行。
    (2)选择结构
    选择结构可为分为两类:if语句和switch语句

    if语句

    if语句的格式1:
    if(比较、关系、条件表达式) {
      语句体;
    }
    执行流程为先计算比较表达式的值,看其返回值是true还是false,如果是true,就执行语句体;如果是false,就不执行语句体。
    注意,比较表达式的结果必须是boolean类型,建议if语句永远不要省略大括号。

    if语句的格式2:
    if(比较、关系表达式) {
      语句体1;
    } else { 语句体2;
    }
    执行流程为先计算比较表达式的值,看其返回值是true还是false,如果是true,就执行语句体1;如果是false,就执行语句体2。

    if语句的格式3:
    if(比较、关系表达式1) {
       语句体1;
    } else if (比较、关系表达式2) {
       语句体2;
    } ...else {
       语句体n+1;
    }
    执行流程为首先计算比较表达式1的值,看其返回值是true还是false,如果是true,就执行语句体1,if语句结束;如果是false,接着计算比较表达式2的值,看其返回值是true还是false,
    如果是true,就执行语句体2,if语句结束;否则继续同上一样的操作,如果都是false,就执行语句体n+1。

     

    if语句和三元的相互转换问题

    1,三元运算符能实现的,都可以用if语句实现,由用三元运算符相对简单,所以我们写程序可以由先用三元运算符。
    2,三元运算符是一个运算符,运算符操作完毕应该得到的是一个结果,而不是一个输出,但if语句可以。

    switch语句

    switch语句的格式:
    switch(表达式){
      case 值1 :
        语句体1;
        break ;
        …
        default:
        语句体n+1;
        break ;
    }

    表达示的值与case的值1对比较,相等则运行语句体1,直到遇到break语句跳出,如不等则与case值2比较,与上面同理,全部不等则运行default。
    (switch里的表达式,基本数据类型都可以接收,换句话来说,就是能自动提升为int类型的,都能够接收,如:byte,short,char,int等。)
    (引用数据类型可以接收枚举(JDK1.5)String字符串(JDK1.7))
    (case后面只能是常量,不能是变量,还不能是重复的值)

    总结:switch语句建议在判断固定值的时候使用,如周一,周二,周三这样子的。if语句建议判断区间或范围的时候使用,。

     

     

  • 相关阅读:
    梦断代码读书笔记2
    梦断代码读书笔记1
    几篇有用的博客链接
    关于我的Androidstudio的再生
    项目下app目录的具体说明
    关于Android studio的项目界面各部分的认识
    1088 最长回文子串 分类: 51nod 2015-07-20 22:09 8人阅读 评
    1083 矩阵取数问题 分类: 51nod 2015-07-20 22:05 9人阅读 评
    1087 1 10 100 1000 分类: 51nod 2015-07-18 21:59 6人
    51nod 1091 线段的重叠 分类: 51nod 2015-07-18 21:49 7人阅读
  • 原文地址:https://www.cnblogs.com/Sherwin-liao/p/10859677.html
Copyright © 2011-2022 走看看