1.代码实例
1 /** 2 * 需求:交换两个变量的值,不借助第三个变量。 3 * @author jliu.l 4 * @2020年7月2日 5 * 6 */ 7 public class Demo01 { 8 9 public static void main(String[] args) { 10 //准备数据 11 int a = 10; 12 int b = 12; 13 System.out.println("交换前:a = "+a+"\t"+"b = "+b); 14 15 //处理数据 16 b = b-a; 17 a = b+a; 18 b = a-b; 19 20 //输出数据 21 System.out.println("交换后:a = "+a+"\t"+"b = "+b); 22 } 23 }
1 /** 2 * 技能点:逻辑运算符 3 * true 1 4 * false 0 5 * & 逻辑与 如果两个操作数都是true,则结果为true,否则为false 6 * | 逻辑或 如果两个操作数只要有一个是true,则结果为true 7 * ^ 异或 两个操作数如果相同,则结果为false,否则为true 8 * ! 逻辑反 取反操作 9 * & 逻辑与 不管结果是什么,都要计算所有的表达式 10 * && 短路与 如果第一个表达式为false,后面就不会计算了 11 * 12 * || 短路或 如果第一个表达式为true,后面就不会计算了 13 * 特点: 14 * 逻辑运算符与布尔操作数一起使用 15 * 16 * @author jliu.l 17 * @2020年7月2日 18 * 19 */ 20 public class Demo02 { 21 22 public static void main(String[] args) { 23 boolean v = true; 24 boolean v2 = false; 25 26 System.out.println(v & v2); //false 27 System.out.println(v | v2); //true 28 System.out.println(v ^ v2); //true 29 System.out.println(!v); //false 30 31 int num = 5; 32 System.out.println(5>4 | ++num< 16); //true 33 System.out.println(num); //6 34 35 System.out.println(num>4 || ++num< 16); //true 36 System.out.println(num); //6 37 38 System.out.println(5<6 | ‘A‘>‘a‘ & 12*6<=45+23 & !true); 39 System.out.println(true | false & false & false); 40 } 41 }
1 /** 2 * 需求:位运算符 3 * & 按位与 4 * | 按位或 5 * ^ 按位异或 6 * ~ 按位取反 7 * 8 * >> 右移 9 * << 左移 10 * >>> 无符号右移 11 * 12 * 1、位运算符是对操作数以二进制比特位为单位进行操作和运算,操作数和结果都是整型数。 13 * 2、如果操作的对象是char、byte、short,位移动作发生前其值会自动晋升为int,运算结果也为int 14 * 15 * @author jliu.l 16 * @2020年7月2日 17 * 18 */ 19 public class Demo03 { 20 public static void main(String[] args) { 21 22 int num = 4; //0000 0100 23 int num2 = 6; //0000 0110 24 25 System.out.println(num & num2); //4 0000 0100 26 27 System.out.println(num | num2); //6 0000 0110 28 29 System.out.println(num ^ num2); //2 0000 0010 30 31 System.out.println(~num); //-5 1111 1011 - 1 = 1111 1010 -> 0000 0101 -> -5 32 33 System.out.println(num>>1); //2 34 35 System.out.println(num>>>1); //2 36 } 37 }
1 import java.util.Scanner; 2 /** 3 * 需求:从控制台输入学员3门课程成绩(html,java,sql),编写程序实现 4 * (1)Java课和SQL课的分数之差 5 * (2)3门课的平均分 6 * @author jliu.l 7 * @2020年7月2日 8 * 9 */ 10 public class Demo04 { 11 public static void main(String[] args) { 12 13 //准备数据 14 Scanner sc = new Scanner(System.in); 15 System.out.print("请输入html成绩:"); 16 double html = sc.nextDouble(); 17 System.out.print("请输入java成绩:"); 18 double java = sc.nextDouble(); 19 System.out.print("请输入sql成绩:"); 20 double sql = sc.nextDouble(); 21 22 //处理输出数据 23 System.out.println("Java课和SQL课的分数之差:"+Math.abs(java-sql)); 24 25 System.out.printf("3门课的平均分:%.2f",(java+html+sql)/3); 26 } 27 }
1 /** 2 * 1.初始化a=3,b=4;请计算: 3 * (1) (a++)/3+(--b)*2-(a--)%6+(b++)*3-(b--) 4 * 3/3+3*2-4%6+3*3-4 5 * 1+6-4+9-4 = 8 6 * 7 * (2) (++b)*2-(a--)%4+(a++)*5-(--b)/2+(--a) 8 * 5*2-3%4+2*5-5/2+2 = 17 9 * 10 * (3) (a--)*6+(b++)/3-(--a)*2-(--b)*2+(++a) 11 * 3*6+4/3-1*2-4*2+2 = 11 12 * 13 * (4) a>b&(a++)>b&(--b)<a&(b++)>(a--); 14 * false & false & true & false 15 * 16 * (5)b<=a|(b--)>(--a)|(++b)!=(a++)|(b--)==(a--) false | true |true | false =true 17 * 3 2 4 3 3 3 18 * flase | true | true | false 19 * 20 * @author jliu.l 21 * @2020年7月2日 22 * 23 */ 24 public class Demo05 { 25 public static void main(String[] args) { 26 27 int a = 3; 28 int b = 4; 29 //System.out.println((a++)/3+(--b)*2-(a--)%6+(b++)*3-(b--)); //8 30 //System.out.println((++b)*2-(a--)%4+(a++)*5-(--b)/2+(--a) ); //17 31 //System.out.println((a--)*6+(b++)/3-(--a)*2-(--b)*2+(++a)); //11 32 //System.out.println(a>b&(a++)>b&(--b)<a&(b++)>(a--)); //false 33 System.out.println(b<=a|(b--)>(--a)|(++b)!=(a++)|(b--)==(a--)); //true 34 } 35 }
原文:https://www.cnblogs.com/jliu-l/p/13225648.html