前言:
当前大家对“java或运算规则”大约比较关怀,姐妹们都需要知道一些“java或运算规则”的相关资讯。那么小编也在网摘上搜集了一些对于“java或运算规则””的相关知识,希望大家能喜欢,咱们一起来学习一下吧!1.数据类型中补充的几个小问题
1.在定义Long或者float类型变量的时候,要加L或者f。2.整数默认是int类型,浮点数默认是double。3.byte、short在定义的时候,他们接受的其实是一个int类型的值。这个是自己做了一个数据检测,如果不在他们的范围内,就报错。
byte值的问题byte b1 = 127;byte b2 = (byte)128;//-128byte b3 = (byte)129;//-127byte b4 = (byte)130;//-126
数据类型转换之默认转换byte、short、char-int-long-float-doublelong:8个字节float:4个字节A:它们底层的存储结构不同。2.运算符的基本用法
1.运算:对常量和变量进行操作的过程称为运算2.运算符:对常量和变量进行操作的符号称之为运算符3.操作数:参与运算的数据称为操作数4.用运算符把常量或者变量连接起来符号Java语法的式子就可以称为表达式。不同运算符连接的式子体现的是不同类型的表达式。
package day03;/** * 运算符:就是对常量和变量进行操作的符号 * 分类:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符 * * 算术运算符: * +,—,*,/,%,++,—— * * 注意事项: * A:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型 * B:/获取的是除法操作的商,%获取的是除法操作的余数 */public class OperatorDemo { public static void main(String[] args) { //定义变量 int x = 3;//把3赋值给int类型的变量x int y = 4; System.out.println(x+y);//7 System.out.println(x-y);//-1 System.out.println(x*y);//12 System.out.println(x/y);//0 整数相除只能得到整数 //我就想得到小数,该咋办? //只需要把操作的数据中任意一个数据变为浮点数 System.out.println(x*1.0/y);//0.75 //%用法 System.out.println(x%y);//3 得到的是余数 }}3.++,--运算符的使用
package day03;/** * ++,--运算符的使用 * * 1.单独使用 * 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的) * 2.参与运算使用 * 放在操作数的前面,先自增或者自减,然后再参与运算。 * 放在操作数的后面,先参与运算,再自增或者自减。 * 作用:就是对变量进行自增或者自减; */public class OperatorDemo2 { public static void main(String[] args) { //定义两个变量 int x = 3; int y = 4; //字符串的拼接(字符串和谁做运算都是拼接) System.out.println("x:"+x);//3 System.out.println("y:"+y);//4 //单独使用 x++; y--; //System.out.println(x);//4 System.out.println("x:"+x+",y:"+y);//x:4,y:3 //意外的类型,常量是不可以这样做的 //System.out.println(10++); System.out.println("----------------"); int a = 3; int b = 4; int c = a++; int d = b--; System.out.println("a:"+a);//4 System.out.println("b:"+b);//3 System.out.println("c:"+c);//3 System.out.println("d:"+d);//4 }}4.++,--练习
package day03;/** * 练习题 * ++,--的练习题 */public class OperatorTest { public static void main(String[] args) { //第一题 int a = 10; int b = 10; int c = 10; a = b++;//在后,先做运算,再自增 a=10,b=11 c = --a;//在前,先自减,再做运算 a=9,c=9 b = ++a;//在前,先自增,再做运算 a=10,b=10 a = c--;//在后,先做运算,再自减 a=9 b=10 c=8 System.out.println("a:"+a);//9 System.out.println("b:"+b);//10 System.out.println("c:"+c);//8 //第二题 int x = 4; int y = (x++)+(++x)+(x*10); System.out.println(y);//70 }}5.算术运算符+的多种用法
package day03;/** * +的用法 * A:加法 * B:正号 * C:字符串连接符 */public class OperatorDemo3 { public static void main(String[] args) { //加法 System.out.println(3+4);//7 //正号 System.out.println(+4);//4 System.out.println('a'+1);//这里是加法,char类型产于运算,首先转为int类型 98 //字符串连接符 System.out.println("hello"+'a'+1);//helloa1 System.out.println('a'+1+"hello");//98hello }}### 5.算术运算符+的多种用法```javapackage day03;/** * +的用法 * A:加法 * B:正号 * C:字符串连接符 */public class OperatorDemo3 { public static void main(String[] args) { //加法 System.out.println(3+4);//7 //正号 System.out.println(+4);//4 System.out.println('a'+1);//这里是加法,char类型产于运算,首先转为int类型 98 //字符串连接符 System.out.println("hello"+'a'+1);//helloa1 System.out.println('a'+1+"hello");//98hello }}```6.赋值运算符
package day03;/** * 赋值运算符 * 1.符号 * =、+=、-=、*=、/=、%= * =为基本的赋值运算符,其他的为扩展的赋值运算符 */public class OperatorDemo4 { public static void main(String[] args) { int a,b; a=b=10; System.out.println(a);//10 System.out.println(b);//10 int x = 10; x += 20; System.out.println(x);//30 }}7.赋值运算符的面试题
package day03;/** * 面试题 */public class OperatorTest2 { public static void main(String[] args) { short s = 1; //s = s + 1; /** * 扩展的赋值运算符其实隐含了一个强制类型转换 * s += 1; * 不是等价于 s = s + 1; * 而是等价于 s = (s的数据类型)(s + 1); */ s += 1; }}8.比较运算符的基本用法与注意事项
package day03;/** * 比较运算符 * ==,!=,>,>=,<,<= * 特点: * 无论你的操作是简单还是复杂,结果是boolean类型 */public class OperatorDemo5 { public static void main(String[] args) { int x = 3; int y = 4; int z = 3; System.out.println(x == y);//false System.out.println(x == z);//true System.out.println((x+y)==(x+z));//false System.out.println("----------------------------"); }}
注意
1.比较运算符的结果都是boolean类型,也就是要么true,要么false。2.比较运算符“==”,不能误写成“=”9.逻辑运算符
package day03;/** * 逻辑运算符 * &,|,^,! * &&,|| * * 特点: * 逻辑运算符一般用于连接boolean类型的表达式或者值 * * 表达式:就是用运算符把常量或变量连接起来的符合Java语法的式子 * 算术表达式 a+b * 比较表达式 a==b */public class OperatorDemo6 { public static void main(String[] args) { int a = 3; int b = 4; int c = 5; //&逻辑与 有false则flase System.out.println((a>b) & (a>c));//false & false =false System.out.println((a>b) & (a<c));//false & true =false System.out.println((a<b) & (a>c));//true & false =false System.out.println((a<b) & (a<c));//true & true =true System.out.println("----------------------------------"); //|逻辑或 有true则true System.out.println((a>b) | (a>c));//false | false =false System.out.println((a>b) | (a<c));//false | true =true System.out.println((a<b) | (a>c));//true | false =true System.out.println((a<b) | (a<c));//true | true =true System.out.println("---------------------------------"); //^逻辑异或 男女关系=true 男男/女女=false System.out.println((a>b) ^ (a>c));//false ^ false =false System.out.println((a>b) ^ (a<c));//false ^ true =true System.out.println((a<b) ^ (a>c));//true ^ false =true System.out.println((a<b) ^ (a<c));//true ^ true =false //!逻辑非 System.out.println(!(a>b));//!false = true System.out.println(!(a<b));//!true = false }}10.逻辑运算符&&和&的区别
package day03;/** * &&和&的区别? * A:最终结果一样 * B:&&具有短路效果,左边是false,右边不执行;||左边为true,右边不执行 * ||和|的区别? */public class OperatorDemo7 { public static void main(String[] args) { int a = 3; int b = 4; int c = 5; //&& System.out.println((a>b) && (a>c));//false & false =false System.out.println((a>b) && (a<c));//false & true =false System.out.println((a<b) && (a>c));//true & false =false System.out.println((a<b) && (a<c));//true & true =true System.out.println("----------------------------------"); int x = 3; int y = 4; boolean b1 = ((++x==3) & (y++==4));//4 5 false boolean b2 = ((++x==3) && (y++==4));//4,4 false System.out.println("x:"+x); System.out.println("y:"+y); System.out.println(b1); }}package day03;/** * &&和&的区别? * A:最终结果一样 * B:&&具有短路效果,左边是false,右边不执行;||左边为true,右边不执行 * ||和|的区别? */public class OperatorDemo7 { public static void main(String[] args) { int a = 3; int b = 4; int c = 5; //&& System.out.println((a>b) && (a>c));//false & false =false System.out.println((a>b) && (a<c));//false & true =false System.out.println((a<b) && (a>c));//true & false =false System.out.println((a<b) && (a<c));//true & true =true System.out.println("----------------------------------"); int x = 3; int y = 4; boolean b1 = ((++x==3) & (y++==4));//4 5 false boolean b2 = ((++x==3) && (y++==4));//4,4 false System.out.println("x:"+x); System.out.println("y:"+y); System.out.println(b1); }}11.位运算的基本使用1
package day03;/** * 位运算符 * <<左移 >>右移 >>>无符号右移 &与运算 |或运算 ^异或运算 ~ 反码 * * 注意: * 要做位运算,首先要将数据转换为二进制 */public class OperatorDemo8 { public static void main(String[] args) { int a = 3; int b = 4; //注意:当两边是数字,做当位运算;当两边是布尔值,做的是逻辑运算; System.out.println(3 & 4); System.out.println(3 | 4); System.out.println(3 ^ 4); System.out.println(~3); } /** * 分析:因为是位运算,所以我们必须先把数据换算成二进制 * 3的二进制 11 * 00000000 00000000 00000000 00000011 * 4的二进制 100 * 00000000 00000000 00000000 00000100 * &位与运算:有0则0 有false就false * 00000000 00000000 00000000 00000000 * 结果是0 * |位或运算:有1则1 有true则true * 00000000 00000000 00000000 00000111 * 结果是7 * ^位异或运算:相同为0 不同为1 * 00000000 00000000 00000000 00000111 * 结果是7 * ~按位取反 0变1 1变0 * 11111111 11111111 11111111 11111100(补码) * * 补码 11111111 11111111 11111111 11111100 * 反码 11111111 11111111 11111111 11111011 * 原码 10000000 00000000 00000000 00000100 * 结果:-4 * */}12.位运算的特点
package day03;/** * ^的特点 */public class OperatorDemo9 { public static void main(String[] args) { int a = 10; int b = 20; //对另一个数据异或两次,结果不变 System.out.println(a^b^b);//10 System.out.println(a^b^a);//20 }}13.位运算的面试题
package day03;/** * 面试题 * 请自己实现两个整数变量的交换 * */public class OperatorTest3 { public static void main(String[] args) { int a = 10; int b = 20; //方式1// int c = a;// a = b;// b = c; //方式2 a = a^b; b = a^b; a = a^b; }}15.三目运算符
package day03;/** * 三目运算符 * 格式 * (关系表达式)?表达式1:表达式2; * 如果条件为true,运算后的结果是表达式1; * 如果条件为false,运算后的结果是表达式2; * */public class OperatorDemo10 { public static void main(String[] args) { int x = 3; int y = 4; int z = (x>y)?x:y; System.out.println(z); }}16.三目运算练习
package day03;/** * 练习 * 获取两个整数中的最大值 * 获取三个整数中的最大值 * 比较两个整数是否相同 */public class OperatorTest4 { public static void main(String[] args) { //获取两个整数中的最大值 int x = 100; int y = 200; int max = x>y?x:y; System.out.println(max);//200 System.out.println("--------"); //获取三个整数中的最大值 int a = 10; int b = 20; int c = 20; //分两步: //A:先比较a、b的最大值 //B:拿a,b的最大值再和c进行比较 int temp = ((a>b)?a:b); int max1 = (temp>c?temp:c); System.out.println("max1:"+max1); //一步到位 int max2 = (a>b)?((a>c)?a:c):((b>c)?b:c); System.out.println(max2); //比较两个整数是否相同 int m = 100; int n = 200; boolean flag = (m==n)?true:false; System.out.println(flag); }}20.顺序结构语句
流程控制语句1.在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能2.流程控制语句分类 a.顺序结构 b.选择结构 c.循环结构
1.顺序结构 a.是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。 b.总的来说:写在前面的先执行,写在后面的后执行。
package day03;/** * 顺序结构 */public class OperatorDemo11 { public static void main(String[] args) { System.out.println("程序开始了"); System.out.println("我爱Java"); System.out.println("程序结束了"); }}21.选择结构
1.选择结构 a.也被称为分支结构 b.选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。 c.Java语言提供了两种选择结构语句 if语句 switch语句
package day03;/** * 选择结构 * a.if语句有三种格式 * b.if语句第一种格式: * if(关系表达式){ * 语句体 * } * c.执行流程 * 首先判断关系表达式看其结构是true还是false * 如果是true就执行语句体 * 如果是false就不执行语句体 */public class OperatorDemo12 { public static void main(String[] args) { int x = 10; if (x==10){ System.out.println("x等于10"); } if (x==20){ System.out.println("x等于20"); } System.out.println("over"); }}22.if语句注意事项
注意事项
1.关系表达式无论简单还是复杂,结果必须是boolean类型2.if语句控制的语句体如果是一条语句,打括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。3.一般来说:有左打括号就没有分号,有分号就没有左大括号
package day03;/** * if语句注意事项 */public class OperatorDemo13 { public static void main(String[] args) { int x = 10; if (x==10){ System.out.println("x等于10"); } if (x>5||x==10){ System.out.println("x大于或者等于10"); } int a = 100; if (a==10)System.out.println("a的值是100"); int b = 100; if (b!=100);//这里其实是有语句体的,只不过是空语句体。 //代码块 { System.out.println("b的值是100"); System.out.println("over"); } }}23.if语句格式2
package day03;/** * if语句第二种格式: * a.if(关系表达式){ * 语句体1; * }else{ * 语句体2; * } * b.执行流程 * 首先判断关系表达式看其结果是true还是false * 如果是true就执行语句体1 * 如果是false就执行语句体2 * * c.注意 * else后面是没有比较表达式的,只有if后面有 */public class OperatorDemo14 { public static void main(String[] args) { //判断两个数据是否相等 int a = 10; int b = 20; if (a == b){ System.out.println("a等于b"); }else { System.out.println("a不等于b"); } }}24.if格式2练习
package day03;import java.util.Scanner;/** * if格式2的练习 * a.获取两个数据中较大的值 * b.判断一个数据是奇数还是偶数 */public class OperatorTest5 { public static void main(String[] args) { //创建键盘录入对象 Scanner sc = new Scanner(System.in); //获取两个数据中较大的值 System.out.println("请输入第一个数据:"); int a = sc.nextInt(); System.out.println("请输入第二个数据:"); int b = sc.nextInt(); int max; if (a>b){ max=a; }else { max=b; } System.out.println(max); //判断一个数据是奇数还是偶数 System.out.println("请输入你要判断的数据:"); int x = sc.nextInt(); if ((x%2)==0){ System.out.println("这个数据是偶数"); }else { System.out.println("这个数据是奇数"); } }}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #java或运算规则