Java第2章:变量和运算符

作者: 您好简书 | 来源:发表于2019-04-04 07:43 被阅读14次
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png image.png

逻辑与或同按位与或是有一定区别的:

相同点是:都能参与逻辑运算,按位与或完全可以代替逻辑与或; – 区别是:按位与或可以参与位运算,逻辑与或只能参与逻辑运算, 逻辑与或可以“短路”,按位与或不能“短路”。 • 短路运算 – 作用运算符:逻辑与&&,逻辑或|| 如(1):逻辑表达式:a>b && c>d 假设a>b 为false,c>d为true,那么整个表达式结果为false; 假设a>b 为false,c>d为false,那么整个表达式结果还为false; 可见,a>b的结果已经决定了整个表达式的结果,而后面的 c>d并不影响表达式的结果,可以说后半部分被“短路”了。 如(2):逻辑表达式: a>b || c>d 假设a>b 为true,那么后半部分表达式将被“短路”;

&&:
短路与(并且),两边都为真则为真,见false则false
如果第1个数为false,则发生短路(第2个数不走了)

||:
短路或(或者),有一边为真则为真,见true则true
如果第1个数为true,则发生短路(第2个数不走了)

! :
逻辑非(取反),非真则假,非假则真

&按位与
& 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&&)的两侧要求必须是布尔表达式。
注意 :&为真的条件是两侧表达式都为真,但是即使我们判断出左侧表达式的值为false,程序也还是要继续执行去判断右侧的表达式值的真假。

int i=2,j=4;
    System.out.println((++i==2)&(j++==4));//false
    System.out.println("i="+i+" ,j="+j);//3,5
    System.out.println(12&5);//与运算12=(1100)2  5=(0101) 1100+0101=0100 4
    System.out.println((2==2)&(4==4));//真真 true
    System.out.println((2==2)&(4!=4));//真假 false
    System.out.println((2!=2)&(4==4));//假真 false
    System.out.println((2!=2)&(4!=4));//假假 false

|按位或
(|)和(||)成立的条件是只要一侧表达式为真,结果就为真,在(|)运算时,无论左侧的表达式的值为真还是为假,都要判断右侧的表达式的值的真假,而(||)在运算时,只要左侧表达式的值为真,就不再判断右侧表达式的值了

三元运算:

image.png image.png image.png image.png

关系代码:

package com.neusoft.demo01;


/**
 * 变量
 * 可变的量,像一个容器一样,可以保存程序运行时产生的中间值。
 * 
 * 如何创建一个变量,创建变量有什么规范?
 * 语法:数据类型   变量名 = 初始值;
 * 变量名(类名)标识符,它是有一定规范的:命名规范:userName   user_name
        在符合了规则和规范的同时,还要保证标示符能够正确的传达它的含义。
   Java中常用数据类型(两大类):基本数据类型      引用类型
   1.基本数据类型(8种):整型(byte short int默认  long)  浮点类型(float  double默认)  字符型(char)  布尔类型(boolean)
 * 注意:变量一定要先初始化,然后才能使用。String不是基本类型,它是引用类型
 * 
 * 2.数据类型的转换
 * 
 * @author ttc
 *
 */
public class VarDemoTest {
    
    public static void main(String[] args) {
        //******************************变量以及数据类型**********************************start
        //      定义变量
        //      int id = 12;
        //      double salary = 3.14;
        //      char sex='m';
        //      String name = "张三";
        //      boolean isRight = false;//true
        //      float sal = 33.33F;
        //      
        //      System.out.println(id);
        //      System.out.println(salary);
        //      System.out.println(sex);
        //      System.out.println(name);
        //      System.out.println(isRight);
        //      System.out.println(sal);
        //******************************变量以及数据类型**********************************end
        
        //******************************基本数据类型转换(自动类型转换   强制类型转换)**********************************start
        //byte, short, int , long, 分别 1,2,4,8个字节     float,double,分别是4,8个字节;
        //1.自动类型转换
        int a = 12;
        double d = a;
        System.out.println(d);//12.0
        
        //2.强制类型转换
        float f = (float) 3.14;//3.14
        System.out.println(f);
        
        double dd = 12.34;
        int aa = (int) dd;
        System.out.println(aa);
        
        //3. +的用法(1.进行加法运算       2.可以用来连接)
        //任何数据类型与String类型连接,最终的结果都是String
        String ddd = a+"555"+dd;
        System.out.println(ddd);//double
        
        byte aaaa = 12;
        byte bbbb = 12;
        int cccc  = aaaa+bbbb;
        System.out.println(cccc);
        
        //******************************基本数据类型转换**********************************end
        
        //******************************基本运算符**********************************start
        //算术运算符 + - * / % ++ --
        int aaa = 0;
        int bbb = aaa++;
        System.out.println("bbb="+bbb);
        int ccc = ++aaa;
        System.out.println("ccc="+ccc);
        int result = (aaa++)+(++aaa)+(++aaa)+(aaa++);//(aaa++)=0 aaa=aaa+1 (++aaa)=2  (++aaa)=3 (aaa++)=3 aaa = aaa+1
        System.out.println(result);
        
        //赋值运算符 =    复合赋值运算符  x+=y(x = x + y)   x-=y(x = x-y)  x/=y x = x/y)   x*=y(x = x*y)   x%=y(x = x%y)
        
        //关系运算符:所有的关系运算的结果都是boolean型的    > >= < <= != ==
        
        System.out.println(4>3);
        System.out.println(4==4);//注意:==与=的区别
        
        //逻辑运算符:参与逻辑运算的都是boolean值,其结果也是boolean值;&&与  ||或  !非
        //        a    &&(&位与)   b      结果        a   ||(|位或)   b      结果               !      结果
        //      true       true    true      true     true    true    !true   false
        //      true       false   false     true     false   true
        //      false      true    false     false    true    true
        //      false      false   false     false    false   false
        
        boolean a1 = true;
        boolean b1 = false;
        
        boolean c1 = a1 && b1;
        System.out.println(!c1);
        //逻辑与和逻辑 或的操作都是短路的,拿逻辑与为例,如果参与运算的前面表达式是false的话,那么就不会计算后面的表达式,结果直接就是false;
        //(4>7)&(3<2)-------false  两个表达式都需要判断
        //注意:&&与&的区别
        
        
        //?  : 运算符(三元): 唯一的能进行逻辑分支运算的运算符,唯一的一个三元运算符
        //语法:X = (boolean表达式)?值1 :值2; 如果boolean表达式的值是true,则返回值1,否则返回值2;
        int x = (4>3) ? 1 : 2;
        System.out.println(x);
        //******************************基本运算符**********************************end
    }
}

相关文章

  • 第二天 变量&数据类型&运算符【悟空教程】

    第二天 变量&数据类型&运算符【悟空教程】 第02天 Java基础 第1章变量 1.1变量 1.1.1变量概念 变...

  • 尚硅谷JavaSE基础

    第2章 变量和运算符2.1 标识符2.1.1 标识符的概念和命名1、概念 Java 对各种变量、方法和类等要...

  • 2022-03-18

    # Java 基本语法 ## 变量与运算符 ——————————————— ### **关键字和保留字** ***...

  • Java-运算符

    java运算符是来操纵变量,有算术运算符、关系运算符、位运算符、逻辑运算符、赋值运算符、条件运算符和instanc...

  • Java基础

    怎么学习Java:多想,多练 Java语言介绍 Java的三大平台 Java语言特点 变量和运算符 Java中的变...

  • Java基础系列6-Java的运算符

    一.运算符概述 对常量和变量进行操作的符号称为运算符。 用运算符把常量或者变量连接起来符号java语法的式子就可以...

  • java

    (一) java基础面试知识点 java中==和equals和hashCode的区别==是运算符,用于比较两个变量...

  • Java-选择

    Java-选择 一个boolean 变量可以存储值 true 和 false。 关系运算符(<、<=、==、!=、...

  • Java基础-运算符

    运算符对常量和变量进行操作的符号称为运算符 表达式用运算符把常量或者变量连接起来符号的java语法的式子就可以称为...

  • ECMAScript基础

    ECMAScript语法 区分大小写 变量是弱类型的,与 Java 和 C 不同,定义变量时只用var运算符,可以...

网友评论

    本文标题:Java第2章:变量和运算符

    本文链接:https://www.haomeiwen.com/subject/wgpxiqtx.html