zoukankan      html  css  js  c++  java
  • javase基础(2)

    1.算数运算符

    运算符

      对常量和变量进行操作的符号称为运算符

    表达式

      用运算符把常量或者变量连接起来符号的java语法的式子可以称为表达式

      不同运算符连接的式子体现的是不同类型的表达式

    常用运算符

      算数运算符

    * +,-,*,/,%,++,--

    public class Demo1{
        public static void main(String[] args) {
            // 定义两个变量
            int a = 3;
            int b = 4;
    
            System.out.println(a + b);
          

          System.out.println(a - b);

            System.out.println(a * b);

            System.out.println(a / b);

     

            // 整数相除只能得到整数,要想得到小数,就必须有浮点数参与运算

            System.out.println(3 / 4.0);

            System.out.println(3.0 / 4);

        }

    }

    注意:

    %:取余运算符。得到的是两个相除数据的余数。

     /:除法运算符。得到是两个相除数据的商。

     使用场景: %:判断两个数据是否整除。

      字符参与运算

    其实是拿该字符对应的数值来操作

    ‘a’     97

    ‘A’     65

    ‘0’     48

    字符串参与运算

    这里其实做的不是加法运算,而是字符串拼接。

    字符串和其他类型的数据做拼接,结果是字符串类型的。

    /*
     * 整数的加法。
     * 字符参与加法操作。拿字符在计算机中底层存储对应的数据值来参与运算的。
     *         '0'        48
     *         'a'        97
     *         'A'        65
     * 字符串参与加法操作。
     *         这里的+其实不是加法,而是字符串连接符。
     */
    public class Demo2{
        public static void main(String[] args) {
            // 整数加法
            int a = 10;
            int b = 20;
            System.out.println(a + b);
            System.out.println("------------------");
    
            // 字符参与加法操作
            char c = '0';
            char c2 = 'a';
            System.out.println(a + c);
            System.out.println(a + c2);
            System.out.println("------------------");
    
            // 字符串参与加法操作
            System.out.println("hello" + a);
            System.out.println("hello" + a + b); // "hello"+10,然后再和b进行拼接
            System.out.println(a + b + "hello");
        }
    }

    2.++和--

      

    ++,--运算符:对变量做加1或者减1的操作。

    ++或者--既可以放在变量的后面,也可以放在变量的前面。

    单独使用的时候,++或者--无论是放在变量的前面还是后面,结果是一样的

    如果++或者--在变量的后面,先拿变量参与操作,后变量做++或者--

    如果++或者--在变量的前面,先变量做++或者--,后拿变量参与操作

    public class Demo3{
        public static void main(String[] args) {
            int a = 10;
            System.out.println("a:" + a);
    
            // 单独使用
            // a++;
            // ++a;
            // System.out.println("a:" + a);
    
            // 参与操作使用
            // int b = a++;
            int b = ++a;
            System.out.println("a:" + a);
            System.out.println("b:" + b);
        }
    }

    3.赋值运算符

    基本的赋值运算符:=

    扩展的赋值运算符:+=,-=,*=,/=,%=

    +=: a+=20;相当于a = (a的数据类型)(a + 20);

    /*
     * 赋值运算符:
     *         A:基本    =
     *         B:扩展    +=,-=,*=,...
     * 
     * +=:
     *         a+=20;
     *         相当于
     *         a = (a的数据类型)(a + 20);
     */
    public class OperatorDemo {
        public static void main(String[] args) {
            // 把10赋值给int类型的变量a
            int a = 10;
    
            // += 把左边和右边的数据进行运算,最后赋值给左边。左边的只能是变量
            a += 10;// 相当于a = a + 10
            System.out.println("a:" + a);
            System.out.println("----------------------");
    
            short s = 10;
            // s += 20; // 相当于 s = s + 20;
            s = (short) (s + 20);
            System.out.println("s:" + s);
        }
    }

    4.  关系运算符

    ==,!=,>,>=,<,<=

    关系运算符的结果都是boolean型,也就是要么是true,要么是false。

    *
     * 关系运算符:
     *         ==,!=,>,>=,<,<=
     *         关系运算符的结果是boolean类型。
     * 
     * 注意:
     *         千万不要把==写成=
     */
    public class OperatorDemo {
        public static void main(String[] args) {
            int a = 10;
            int b = 20;
            int c = 10;
    
            System.out.println(a == b);
            System.out.println(a == c);
            System.out.println("-----------------");
            System.out.println(a != b);
            System.out.println(a != c);
            System.out.println("-----------------");
            System.out.println(a > b);
            System.out.println(a > c);
            System.out.println("-----------------");
            System.out.println(a >= b);
            System.out.println(a >= c);
            System.out.println("-----------------");
    
            int x = 3;
            int y = 4;
            // System.out.println(x == y);
            // System.out.println(x = y);// 把y赋值给x,把x的值输出
            boolean bb = (x == y);
            // 报错
            // boolean cc = (x = y);
            int cc = (x = y);
        }
    }

    5.  逻辑运算符

      &,|,^,!

           &&,||

        逻辑运算符一般用于连接boolean类型的表达式或者值。

             表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。

                算术表达式:a + b

                 比较表达式:a == b(条件表达式)

    &逻辑与:有false则false。

          |逻辑或:有true则true。

          ^逻辑异或:相同为false,不同为true。

          !逻辑非:非false则true,非true则false。

           特点:偶数个不改变本身。

    /*
     * 逻辑运算符:用于连接关系表达式。
     * &,|,^,!
     * &&,||
     * 
     * 与:&    有false则false
     * 或:|    有true则true
     * 异或:^ 相同则false,不同则true。(男女朋友)
     * 非:!    true则false,false则true
     */
    public class Demo5{
        public static void main(String[] args) {
            int a = 10;
            int b = 20;
            int c = 30;
    
            System.out.println((a > b) & (a > c));// false & false
            System.out.println((a < b) & (a > c)); // true & false
            System.out.println((a > b) & (a < c)); // false & true
            System.out.println((a < b) & (a < c)); // true & true
            System.out.println("---------------");
            System.out.println((a > b) | (a > c));// false | false
            System.out.println((a < b) | (a > c)); // true | false
            System.out.println((a > b) | (a < c)); // false | true
            System.out.println((a < b) | (a < c)); // true | true
            System.out.println("---------------");
            System.out.println((a > b) ^ (a > c));// false ^ false
            System.out.println((a < b) ^ (a > c)); // true ^ false
            System.out.println((a > b) ^ (a < c)); // false ^ true
            System.out.println((a < b) ^ (a < c)); // true ^ true
            System.out.println("---------------");
            System.out.println((a > b)); // false
            System.out.println(!(a > b)); // !false
            System.out.println(!!(a > b)); // !!false
        }
    }

    注意:

      

       &&和&的区别?

           a:最终结果一样。

           b:&&具有短路效果。左边是false,右边不执行。

           &是无论左边是false还是true,右边都会执行

        ||和|的区别?

           a:最终结果一样

           b:||具有短路效果.左边是true,右边不执行

           |是无论左边是false还是true,右边都会执行

    /*
     * &&和&的结果一样
     * ||和|的结果一样
     * 
     * &&和&的区别:
     *         &&如果左边是false,右边不执行。
     *         &无论左边是true还是false,右边都会执行。
     */
    public class Demo6{
        public static void main(String[] args) {
            int a = 10;
            int b = 20;
            int c = 30;
    
            System.out.println((a > b) && (a > c));// false && false
            System.out.println((a < b) && (a > c)); // true && false
            System.out.println((a > b) && (a < c)); // false && true
            System.out.println((a < b) && (a < c)); // true && true
            System.out.println("---------------");
            System.out.println((a > b) || (a > c));// false || false
            System.out.println((a < b) || (a > c)); // true || false
            System.out.println((a > b) || (a < c)); // false || true
            System.out.println((a < b) || (a < c)); // true || true
            System.out.println("---------------");
    
            int x = 3;
            int y = 4;
            // System.out.println((x++ > 4) & (y++ > 5)); // false & false
            System.out.println((x++ > 4) && (y++ > 5)); // false && false
            System.out.println("x:" + x);
            System.out.println("y:" + y);
        }
    }

    6.  三元运算符

      (关系表达式)?表达式1:表达式2;

           如果条件为true,运算后的结果是表达式1;

           如果条件为false,运算后的结果是表达式2;

    获取两个数中大数。

           int x=3,y=4,z;

           z = (x>y)?x:y;//z变量存储的就是两个数的大数

    /*
     * 三元运算符:
     * 
     * 格式:
     *         (关系表达式)?表达式1:表达式2;
     * 执行流程:
     *         A:计算关系表达式的值,看是true还是false
     *         B:如果是true,表达式1就是运算结果
     *               如果是false,表达式2就是运算结果
     */
    public class Demo7{
        public static void main(String[] args) {
            int a = 10;
            int b = 20;
    
            int c = (a > b) ? a : b;
            System.out.println("c:" + c);
        }
    }

    比较两个数是否相等

    /*    
     * 三元运算符的练习
     * 比较两个整数是否相同
     */
    public class Demo8{
        public static void main(String[] args) {
            // 定义两个int类型的变量
            int a = 10;
            int b = 20;
    
            boolean flag = (a == b) ? true : false;
            // boolean flag = (a == b);
            System.out.println(flag);
        }
    }

    获取三个数的最大值

    /*
     * 获取三个整数中的最大值
     */
    public class Demo9{
        public static void main(String[] args) {
            // 定义三个int类型的变量
            int a = 10;
            int b = 30;
            int c = 20;
    
            // 先比较两个整数的大值
            int temp = ((a > b) ? a : b);
            int max = ((temp > c) ? temp : c);
            System.out.println("max:" + max);
        }
    }

    7.键盘录入

    import java.util.Scanner;
    /*
     * 为了提高程序的灵活性,我们就把数据改进为键盘录入。
     * 如何实现键盘录入呢?目前我们只能使用JDK提供的类Scanner。
     * 这个使用的步骤,目前大家记住就可以了。
     * 
     * 使用步骤:
     *         A:导包
     *             import java.util.Scanner;
     *             类中的顺序:package > import > class
     *         B:创建对象
     *             Scanner sc = new Scanner(System.in);
     *         C:接收数据
     *             int i = sc.nextInt();
     */
    
    public class ScannerDemo1 {
        public static void main(String[] args) {
            //创建键盘录入数据的对象
            Scanner sc = new Scanner(System.in);
            
            //接收数据
            System.out.println("请录入一个整数:");
            int i = sc.nextInt();
            
            //输出数据
            System.out.println("i:"+i);
        }
    }

    键盘录入练习

    获取三个数的最大值

    import java.util.Scanner;
    
    /*
     * 键盘录入三个数据,获取这三个数据中的最大值
     */
    public class ScannerDeom2{
        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();
    
            System.out.println("请输入第三个数据:");
            int c = sc.nextInt();
    
            // 如何获取三个数据的最大值
            int temp = (a > b ? a : b);
            int max = (temp > c ? temp : c);
    
            System.out.println("max:" + max);
        }
    }
  • 相关阅读:
    如何在mysql客户端即mysql提示符下执行操作系统命令
    干掉safedog命令
    面试题-----判断两个无环单链表是否交叉,如果交叉返回交叉点
    面试题-----单链表的反转
    面试题-----ICMP协议简介
    面试题-------SSL协议简介
    面试题-----求单链表的倒数第k个节点
    面试题---两个有序单链表的合并
    面试题---求一个串中的最大连续递增数字串
    面试题---两个大整数相乘
  • 原文地址:https://www.cnblogs.com/learnjfm/p/6880706.html
Copyright © 2011-2022 走看看