• Java基础-运算符


    算术运算符Arithmetic Oprator:

    + - * :和数学中规则一样

    / :当操作数都是整型,结果也是整型,小数部分舍弃

    % :结果是除法操作的余数.结果的符号取决于被模数.

    ++ -- :针对变量进行操作.

             前++ : 先对变量增加,再使用.

             后++ : 先使用变量原来的值,再增加.

             --同理:

    + : 当 + 两侧任意一侧是字符串的时候,+就是连接符.

    作用:

             1.字符串拼接

             2.将其它类型的值转换成字符串,只需要让值和一个空串拼接即可.

     1 /*
     2     演示算术运算符
     3     + - * /
     4     %:取余
     5     ++ :针对变量操作,每次都加1.
     6     -- :针对变量操作,每次都减1.
     7         当++,--放在变量后,表示先使用,后变化.
     8         当++,--放在变量前,表示先变化,然后再使用.
     9         
    10             +  :连接符,用于出现字符串的地方,简单的拼接.
    11 */
    12 public class ArithmeticDemo{
    13     public static void main(String[] args){
    14         
    15         /*
    16         int a = 10;
    17         int b = 5;
    18         
    19                   //算术运算
    20         System.out.println(a + b);  //15
    21         System.out.println(a - b);  // 5
    22         System.out.println(a * b);  //50
    23         System.out.println(a / b);  //2
    24         System.out.println(a % b);  // 0
    25         */
    26         /*
    27                 // + 有重载操作:在算数运算中,它是加法,在遇到字符串时,它是连接符.
    28         System.out.println("hello" + 10);   // hello10
    29         
    30             //注意 + 两侧的数据类型.
    31         System.out.println(a + b + "world");  // 15world
    32             // + 两侧都是字符串.
    33         System.out.println("hello" + "\world");  // helloworld
    34             
    35         System.out.println("hello" + (5 + 5));  //hello10  加()提升优先级.
    36         */
    37         
    38         /*
    39             //++表示对变量每次自增1
    40         int a = 10;
    41         //a++;
    42         //System.out.println(a);  //11
    43         
    44             //--表示对变量每次减1
    45         int b = 10;
    46         //b--;
    47         //System.out.println(b);  // 9
    48         System.out.println(a++);  //10   先使用a原来的值,然后让a增加1
    49         System.out.println(++b);  //11   先让变量值增加,然后使用   
    50         */
    51         
    52         // double d = 3.14;
    53         // System.out.println(++d); //4.1400000001
    54         /*
    55         //思考题1
    56         int a = 10;
    57         int b = 10;
    58         int c = 10;
    59         a = --c;   // c = 9, a = 9
    60         b = c++;   // b = 9, c = 10
    61         c = ++a;   // a = 10 , c = 10
    62         System.out.println(a + "," + b + "," + c);   // a = 10 , b = 9 , c = 10
    63         */
    64         
    65         //思考题2
    66         // int a = 10;
    67         // int b = 3;
    68         // System.out.println(a*1.0 / b);   // 3.333333333
    69                 
    70         // int a = 4;
    71         // int b = (++a) + (a++) + (a*10);
    72         // System.out.println(a + "," + b);  // a = 6, b = 70
    73                 //%结果的正负取决于被模数,就是%前面的数的正负.
    74         int a = -10;
    75         int b = -3;
    76         System.out.println(a % b);   // -1
    77         
    78     }
    79 }
    View Code

    赋值运算符:Assignment operator

    基本赋值运算符:

             =

    扩展赋值运算符:

             += -= *= /= %=

    特点:不改变等号左边的变量的类型,相当于系统自动加上了类型转换.

             short s = 1;

             s = s + 1;// int -> short

             s += 1; //自动类型转换

    /*
        赋值运算符的演示:
            =    就是把右边的常量(字面量),变量,表达式的值赋值给左边的变量
            扩展赋值运算符:就是一些赋值运算符的简化写法.
                +=   a += 10 ->  a = a + 10;
                -=
                *=
                /=
                %=
                特点:不改变左侧变量的数据类型.
                    short s = 1;
                    s = s + 1;       //报错
                    s += 1;        //不改变左侧变量的数据类型
    
    */
    public class AssignmentDemo{
        public static void main(String[] args){
            
            
            // int a = 10;                //用常量给变量赋值
            // int b = a;              //用变量给变量赋值
            // b = b + a;              //用表达式的值给变量赋值
            // System.out.println(a + "," + b);  // 10,20
            
            //连续赋值
            // int a,b,c;
            // a = b = c = 10;
            // System.out.println(a + "," + b + "," + c);  //10,10,10
            
            
            short s = 1;
            s = (short)(s + 1);
            System.out.println(s);   // 2
            
            
        }
    }
    View Code

    比较运算符:Compare Operator

    结果肯定是一个boolean类型

    ==

    !=

    >=

    <=

    instanceof : 判断某个对象是否是某个类的实例.

    比较运算符可以比较:

    常量,变量,表达式

    /*
        比较运算符的演示
        ==
        !=
        >
        <
        >=
        <=
        instanceof:判断某个对象是否是某个类的实例.
        总结:比较运算符的结果肯定是一个boolean类型值(true/false)
    
    */
    public class CompareDemo{
        public static void main(String[] args){
            /*
            //比较两个常量
            System.out.println(10 == 20);   //false
            
            //比较两个变量
            int a = 10;
            int b = 20;
            System.out.println(a == b); //false
            System.out.println(a != b); //true
            System.out.println(a >= b); //false
            System.out.println(a <= b); //true
            System.out.println(a > b); //false
            System.out.println(a < b); //true
            */
            //比较表达式
            int a = 20;
            boolean b1 = a > (a - 10);
            System.out.println(b1);   //true
            
            
        }
    }
    View Code

    逻辑运算符:Logic Operator

    /*
        逻辑操作符的演示
        &     :两个操作数都是true,结果才为true,否则就是false
        |     :两个操作数都有一个是true,其结果就为true
        &&    :短路与,当左侧操作数为false时,整体的结果已经是false,右侧就不参与运算了
        ||    :短路或,当左侧操作数为true时,整体的结果已经是true,右侧就不参与运算了.
        ^     :异或,两个操作数不同时,结果为true,否则为false
        !     :取反,单操作数,相反.
    
    
    */
    public class LogicDemo{
        public static void main(String[] args){
            /*
            System.out.println(true && true);      //布尔常量进行逻辑运算
            
                //布尔类型的变量进行运算
            boolean b1 = true ;
            boolean b2 = false ;
            boolean b3 = true ;
            System.out.println(b1 & b2);   // false
            System.out.println(b1 | b2);   // true
            System.out.println(b1 && b2);  // false
            System.out.println(b1 || b2);  // true
            System.out.println(b1 ^ b2);   // true
            System.out.println(b1 ^ b3);   // false
            System.out.println(!b1);       // false
            */
            /*    
                //短路操作
            int a = 1;
            boolean b = true && (a++) > 1;    
            System.out.println(a);    //  a = 2
            System.out.println(b);    //  b = false
            */
            /*
                //&&左侧为false,直接结果为false,右侧不参与运算.
            int a = 1;
            boolean b = false && (a++) > 1;    
            System.out.println(a);    //  a = 1
            System.out.println(b);    //  b = false
            */
            
            
        }
    }
    View Code

    位运算符:Bitwise Operator

    /* 
        位运算符的演示:
            << : 对操作数的二进制表示形式操作,左边移出的位丢弃,右边全以0填充
            >> : 带符号右移,左边空出的位,以符号位填充.
            >>> : 无符号右移,左边空出的位,总以0填充.
            &  : 按位与操作.
            |  : 按位或操作.
            ^  : 按位异或操作.
            ~  : 按位取反.
    
    
    */
    public class BitDemo{
        public static void main(String[] args){
                
            /*
            System.out.println(3 << 2);  //  相当于3*2^2 = 12   
                 //带符号右移
            System.out.println(3 >> 2);  //  0
            System.out.println(-1 >> 2);  //  -1    
            System.out.println(-1 >> 9);  //  -1    
            System.out.println(-1 >> 30);  //  -1    
            
                 //无符号右移
            System.out.println(-1 >>> 1);  //  21yi    
            */
                //按位与操作
            System.out.println(3 & 6);   //  2
                //按位或操作
            System.out.println(3 | 6);   //  7
                //按位异或操作
            System.out.println(3 ^ 6);   //  5
                //按位取反
            System.out.println(~6);   //  -7
            
            
            
            
        }
    }
    View Code

    三元运算符:Ternary Operator

    格式:

    (布尔表达式) ? 表达式1:表达式2;

    布尔值为true,整体是表达式1的值.否则是表达式2的值.

    /*
        演示三元运算符:
        格式:
            (布尔值)?表达式1:表达式2;
        ()可选,建议加上.
        
    */
    public class TernaryDemo{
        public static void main(String[] args){
            //直接使用布尔常量
            System.out.println((false)?1:2);
            
            int x = (false)?1:2;//
            
            //
            // int a = 10;
            // int b = 20;
            // double d = (b > a) ? 1.0:2.0;
            // System.out.println(d);
            
            //
            // int a = 4,b = 4;
            // System.out.println((a > b) ? a : b);
            
        }
    }
    View Code

    程序流程控制:

    if分支:

    第一种:

    if(条件表达式){

             语句体;

    }

     

    第二种:

    if(条件表达式1){

             语句体1;

    }else{

             语句体2;

    }

     

    第三种:

    if(条件表达式1){

             语句体1;

    }else if(条件表达式2){

             语句体2;

    }else if(条件表达式3){

             语句体3;

    }

    ...

    else{

             语句体n;

    }

    *
        分支结构(选择结构)
        第一种:
            if(条件表达式){
                语句体;//可以是多条语句
            }
            
        
        第二种:
            if(条件表达式){
                语句体1;//可以是多条语句
            }else{
                语句体2;//可以是多条语句
            }
        
        第三种:
            if(条件表达式1){
                语句体1;//可以是多条语句
            }else if(条件表达式2){
                语句体2;//可以是多条语句
            }else if(条件表达式3){
                语句体3;//可以是多条语句
            }
            ...
            else{
                语句体n;//可以是多条语句
            }
            
    */
    
    
    
    public class IfDemo1{
        public static void main(String[] args){
            // int a = 150;
            /*
            if(a > 0){
                System.out.println("a > 0");
            }
            //..
            System.out.println("if后的语句");
            */
            
            /*
            //第二种格式;
            if(a > 0){
                System.out.println("a>0");
            }else{
                System.out.println("a<=0");
            }
            System.out.println("if后的语句");
            */
            /*
            //第三种格式
            if(a < 0){
                System.out.println("a < 0");
            }else if(a < 10){ //else隐含一个条件 a >= 0,
                System.out.println("a >= 0 a < 10");
            }else if(a < 20){//隐含条件 a >= 10,
                System.out.println("a >= 10 a < 20");
            }else{    //隐含条件 a >= 20
                System.out.println("a >= 20");
            }
            //
            System.out.println("if后的语句");
            */
            
            
            // int a = 10;
            // int b = 20;
            // if(a > 0 && b > 5){
                
            // }else{
                
            // }
            
            // System.out.println((a > b)?a:b);
            
            //if后的{}可以省略,但是此时只能控制到第一个;结束
            if(false){
                System.out.println("ok");
                System.out.println("可以");
            }
            
            //建议不论if后面有多少条语句,一定要加{}
            
            
            
        }
    }
    View Code

    如何在程序中接受从键盘上录入数据?

    1.导包

             import java.util.Scanner;

             一定要在类定义的前面

    2.创建对象

             Scanner s = new Scanner(System.in);

             现在只能出现在main方法中.

     

    3.调用方法获取数据

             int x = s.nextInt();                       获取int值

             double d = s.nextDouble();       获取double值

    /*
        从键盘录入三个int值,取其中的最大值.
        作业:
            使用三元运算符求键盘录入的三个数中的最大值(嵌套/不嵌套)
    */
    //导包
    import java.util.Scanner;
    
    public class ScannerDemo1{
        public static void main(String[] args){
            //创建扫描器对象
            Scanner s = new Scanner(System.in);
    
            //提示输入三个数
            System.out.println("输入第一个int值:");
            int a = s.nextInt();
            System.out.println("输入第二个int值:");
            int b = s.nextInt();
            System.out.println("输入第三个int值:");
            int c = s.nextInt();
            /*
            //if-else取最大值
            if(a > b){
                if(a > c){
                    System.out.println("最大值是: " + a);
                }else{ //c >= a
                    System.out.println("最大值是: " + c);
                }
            }else{//b >= a
                if(b > c){
                    System.out.println("最大值是: " + b);
                }else{ //c >= b
                    System.out.println("最大值是: " + c);
                }
            }
            */
            //三元运算符求最大值.
            // int Max1 = (a > b)?a:b;
            // int Max2 = (Max1 > c)?Max1:c;
            // System.out.println("最大值为: " + Max2);
            
            int Max = (((a > b)?a:b)>c)?((a > b)?a:b):c;
            System.out.println("最大值为: " + Max);
        }
    }
    View Code
  • 相关阅读:
    project3 blockchain
    RESTful Web服务与“大”Web服务: 做出正确的建筑决策
    project2
    LAB4
    云计算的描述性文献综述与分类研究
    SQL常见面试题(学生表_课程表_成绩表_教师表)
    等价类划分经典实例-三角形测试用例设计
    搜索框功能测试分析
    B/S结构-登录页面-测试用例设计
    软件测试面试--常用基本控件测试用例
  • 原文地址:https://www.cnblogs.com/Z-xiaoshuai/p/9490181.html
Copyright © 2020-2023  润新知