龙空技术网

Day03-Java运算

一达7 94

前言:

当前大家对“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或运算规则