2021年3月8日星期一

200-Java语言基础-Java编程入门-003 | Java运算符

一、字符和字符串参与运算
 1 public class JavaDemo { 2 public static void main(String[] args) { 3  System.out.println('a' + 1);   // 98,因为有ASCII,a字符对应的是int类型97 4  System.out.println((char) ('a' + 1)); // b 5  6  // 任何数据类型用 + 与字符串相连接都会产生新的字符串 7  System.out.println("hello" + 'a' + 1); // helloa1 8  System.out.println('a' + 1 + "hello"); // 98hello 9 10  System.out.println("5 + 5 = " + 5 + 5); // 5 + 5 = 5511  System.out.println("5 + 5 = " + (5 + 5)); // 5 + 5 = 1012  }13 }


二、char数据类型
    Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
  • Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。中文也是占的两个字节
  • Java中的字符可以存储一个中文汉字
 1 public class JavaDemo { 2 public static void main(String[] args) { 3  char c = 'a'; 4  System.out.println(c); 5   6  byte b = 100; 7  char c1 = 97;   // 0 ~ 65535 8  System.out.println(c1); 9  10  // char类型是否可以存储中文11  char x = '中';12  System.out.println(x);13  }14 }


三、运算符
    什么是运算符
  • 就是对常量和变量 进行操作的符号
    运算符的分类
  • 算数运算符
  • 赋值运算符
  • 比较(关系或条件)运算符
  • 逻辑运算符
  • 三目(元)运算符
    所有的程序开发都是一种数据的处理游戏,那么对于数字的处理一定会有所谓的操作模式,而这些操作模式就称为运算符,运算符是有优先顺序的。
    对于程序开发而言,里面会提供大量的基础运算符,那么这些运算符也都会提供各自的优先顺序


"++"、"--"这两种运算符有两类使用方式:
  • 变量++(a++)、变量--(a--):先将变量中的值取出做赋值操作,而后进行自增1或自减1;
  • ++变量(++a)、--变量(--a):先进行变量的自增1或自减1,而后进行结果赋值;
 1 // 实现自增与自减 2 public class JavaDemo { 3 public static void main(String[] args) { 4  int x = 10 ; 5  int y = 20 ; 6  // 1、++ x:首先x的内容要先自增1,为11; 7  // 2、y --:先进行计算,使用的内容是20,计算完成后自减 8  int result = ++ x - y -- ; 9  System.out.println("计算结果:" + result) ; // -910  System.out.println("x = " + x) ; // 1111  System.out.println("y = " + y) ; // 1912  }13 }


 
五、赋值运算符
    赋值运算符有哪些
  • 基本的赋值运算符:=
    • 把 = 右边的数据赋值给左边,左边必须是变量。
  • 扩展的赋值运算符:+=,-=,*=,/=,%=
    • += 把左边和右边做加法,然后赋值给左边。
 
六、比较(关系或条件)运算符
    关系运算符的是要特征就是进行大小的比较处理,包括:大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、不等(!=)、相等(==)。注意:=是进行赋值、==是进行关系运算
    无论你的操作是简单还是复杂,结果是boolean类型。
    在进行关系判断的时候特别需要注意的就是相等的判断问题,在Java中"="表示的赋值运算、而内容相同的比较是"=="
 1 // 判断相等 2 public class JavaDemo { 3 public static void main(String[] args) { 4  int x = 10 ; 5  int y = 10 ; 6  boolean flag = x == y ; // true 7  System.out.println(flag) ; 8  } 9 }10  进行关系运算的时候可以针对所有的基本数据类型,例如:也可以直接使用字符进行处理11 // 在字符处理上使用关系运算12 public class JavaDemo {13 public static void main(String[] args) {14  char c = '剑';15  boolean flag = 21073 == c ; // true16  System.out.println(flag) ; 17  }18 }
数据类型之间提供有转型支持,所以在进行判断的时候字符会自动转为int后进行数字的比较


七、逻辑运算符
 1 public class JavaDemo { 2 public static void main(String[] args) { 3  // &(逻辑与)、|(逻辑或)、^(逻辑异或)、!(逻辑非) 4  // 逻辑与 & 并且and 遇到false则false 5  int a = 10; 6  int b = 20; 7  int c = 30; 8  System.out.println(a < b & b < c); // true & true = true 9  System.out.println(a < b & b > c); // true & false = false10  System.out.println(a > b & b < c); // false & true = false11  System.out.println(a > b & b > c); // false & false = false12  13  // 逻辑 | 或or 遇true则true14  System.out.println(a < b | b < c); // true | true = true15  System.out.println(a < b | b > c); // true | false = true16  System.out.println(a > b | b < c); // false | true = true17  System.out.println(a > b | b > c); // false | false = false18  19  // 逻辑异或^ 两边相同为false,两边不同为true20  System.out.println(a < b ^ b < c); // true ^ true = false21  System.out.println(a < b ^ b > c); // true ^ false = true22  System.out.println(a > b ^ b < c); // false ^ true = true23  System.out.println(a > b ^ b > c); // false ^ false = false24  25  // 逻辑非 !26  System.out.println(!true);27  System.out.println(!!true);28  }29 }


    逻辑运算符 && 和 & 的区别:
  • 最终结果一样
  • &&具有短路效果,左边是false,右边不执行。
 
    逻辑运算符 || 和 | 的区别:
  • 最终结果一样
  • || 具有短路效果,左边是true,右边不执行。
 1 public class JavaDemo { 2 public static void main(String[] args) { 3  /* 4  int a = 10; 5  int b = 20; 6  int c = 30; 7  System.out.println(a < b && b < c); // true && true = true 8  System.out.println(a < b && b > c); // true && false = false 9  System.out.println(a > b && b < c); // false && true = false10  System.out.println(a > b && b > c); // false && false = false11  */12  int x = 3;13  int y = 4;14  // System.out.println((++x == 3) & (++y == 4)); // false & false = false15  // System.out.println("x = " + x); // 416  // System.out.println("y = " + y); // 517  System.out.println("---------------------------------");18  System.out.println((++x == 3) && (++y == 4)); // false & false = false19  System.out.println("x = " + x); // x = 420  System.out.println("y = " + y); // y = 421  }22 }


八、位运算符
    位运算指的是可以直接进行二进制数据的计算处理,主要有:位与(&)、位或(|)、位异或(^)、反码(~)、
 1 public class JavaDemo { 2 public static void main(String[] args) { 3  /* 4  * &,|,^,~ 的用法 5  * &:有0则0 6  * |:有1则1 7  * ^:相同则0,不同则1 8  * ~:按位取反 9  */ 10  System.out.println(6 & 3);    // 010 - 2 11  System.out.println(6 | 3);    // 111 - 7 12  System.out.println(6 ^ 3);    // 101 - 5 13  System.out.println( ~ 6);    // -5 14  } 15 } 16 /* 17  110 18 & 011 19 ---------- 20  010 21   22   23  110 24 | 011 25 ---------- 26  111 27   28   29  110 30 ^ 011 31 ---------- 32  101 33   34   35  00000000 00000000 00000000 00000110 6的原码反码补码都是本身 36  11111111 11111111 11111111 11111001 对6取反 37 - 00000000 00000000 00000000 00000001 38 --------------------------------------- 39  11111111 11111111 11111111 11111000 反码 40  10000000 00000000 00000000 00000111 原码(-7) 41 */ 42  位异或运算符的特点 43 public class JavaDemo { 44 public static void main(String[] args) { 45  /* 46    * 位异或运算符的特点 47   * ^的特点:一个数据对另一个数据位异或两次,该数本身不变。 48  */ 49  // System.out.println(5 ^ 10 ^ 10); // 5 50  // System.out.println(5 ^ 10 ^ 5); // 5 51   52  /* 53   * 请自己实现两个整数变量的交换(不需要定义第三方变量) 54  */ 55  int x = 5; 56  int y = 10; 57  58  // 需要第三方变量 59  /* 60  int temp; 61  temp = x; 62  x = y; 63  y = temp; 64  */ 65   66  // 不需要定义第三方变量,有可能超出int取值范围 67  /* 68  x = x + y;  // 5 + 10 = 15 69  y = x - y;  // 15 - 10 = 5 70  x = x - y;  // 15 - 5 = 5  71  */ 72  // 不需要第三方变量 73  x = x ^ y;  // 5 ^ 10 74  y = x ^ y;  // 5 ^ 10 ^ 10  y = 5 75  x = x ^ y;  // 5 ^ 10 ^ 5 76  System.out.println("x = " + x + "---" + "y = " + y); 77  } 78 } 79  80 public class JavaDemo { 81 public static void main(String[] args) { 82  /* 83   * >>,>>>,<<的用法: 84   * <<:左移 左边最高位丢弃,右边补齐0 85   * >>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1 86   * >>>:无符号右移 无论最高位是0还是1,左边补齐0 87    * 最有效率的算出2 * 8的结果 88  */ 89   90  // 左移,向左移动几位就是 乘以2的几次幂 91  System.out.println(12 << 1); 92  System.out.println(24 << 2); 93  94  // 右移,向右移动几位就是除以2的几次幂 95  System.out.println(12 >> 1); 96  System.out.println(12 >> 2); 97   98  System.out.println(12 >>> 2); 99  100  // 最有效率的算出2 * 8的结果101  System.out.println(2 << 3);102  }103 }


九、三元运算符的基本用法
    在进行程序开发的时候三目(赋值)运算符使用的非常多,而且合理运用三目运算可以避免一些大范围的程序编写。三目运算的赋值运算处理,它需要设置一个逻辑关系的判断之后才可以进行的赋值操作。基本语法如下:
关系运算  ?关系满足时的内容 :关系不满足时的内容
 1 // 判断两个数字的大小,将最大值保存 2 public class JavaDemo { 3 public static void main(String[] args) { 4  int x = 20; 5  int y = 10; 6  // 判断两个数的最大是,如果x大于y就将x赋值给max,反之y赋值给max 7  int max = x > y ? x : y; 8  System.out.println(max) ; 9  }10 }


     三目运算本身也可以进行嵌套处理,也就是说在赋值语句位置上可以进一步编写三目运算
 1 // 三目运算的嵌套,将三个数字中的最大值保存下来 2 public class JavaDemo { 3 public static void main(String[] args) { 4  int x = 20; 5  int y = 10; 6  int z = 30; 7  // 判断两个数的最大是,如果x大于y就将x赋值给max,反之y赋值给max 8  int max = (x > y) ? (x > z ? x : z ) : (y > z ? y : z); 9  System.out.println(max) ;10  }11 }12  虽然允许进行嵌套处理,但是程序的可读性变得很差,根据实际的情况确定是否使用


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 








原文转载:http://www.shaoqun.com/a/612594.html

跨境电商:https://www.ikjzd.com/

海豚村:https://www.ikjzd.com/w/1779

贝贝官网:https://www.ikjzd.com/w/1321


一、字符和字符串参与运算1publicclassJavaDemo{2publicstaticvoidmain(String[]args){3System.out.println('a'+1);//98,因为有ASCII,a字符对应的是int类型974System.out.println((char)('a'+1));//b56//任何数据类型用+与字符串相连接都会产
jpgoodbuy:https://www.ikjzd.com/w/1553
巴士物流:https://www.ikjzd.com/w/2329
史泰博办公用品:https://www.ikjzd.com/w/2112
做好这五点,亚马逊Q4的正确打开方式 !:https://www.ikjzd.com/home/109915
口述:我打车被司机骚扰,男友还怪我:http://lady.shaoqun.com/m/a/92465.html
全球速卖通成为最受匈牙利人欢迎的跨境电商平台:https://www.ikjzd.com/home/132493

没有评论:

发表评论