JavaSE基础学习(四)——运算符和键盘录入Scanner

1. 运算符

1.1 概述

  • 运算符的概述
    • 对常量和变量进行操作的符号被称作运算符。
  • 表达式的概述
    • 用运算符把常量或者变量连接起来的符号java语法的式子就可以称为表达式。不同运算符连接的式子体现的是不同类型的表达式。
    • 定义两个int类型的变量a,b,做加(a+b)
  • 常用的运算符
    • 算数运算符
    • 赋值运算符
    • 关系运算符
    • 逻辑运算符
    • 三元运算符

1.2 算数运算符

package com.study.demo.operator;

/**
 * @Auther: lds
 * @Date: 2018/10/15
 * @Description:
 */
public class OperatorDemo01 {

    public static void main(String[] args) {
        // 定义两个变量
        int a = 3;
        int b = 4;
        System.out.println(a+b); // 7
        System.out.println(a-b); // -1
        System.out.println(a*b); // 12
        System.out.println(a/b); // 0
        System.out.println(3/4.0); // 0.75
        System.out.println(3.0/4); // 0.75
    }
}
  • %的用法
    • 得到两个相除数据的余数。
    • 用处:判断两个数是否整除。
package com.study.demo.operator;

/**
 * @Auther: lds
 * @Date: 2018/10/15
 * @Description:
 */
public class OperatorDemo02 {

    public static void main(String[] args) {
        int a = 5;
        int b = 3;
        System.out.println(a / b); // 1
        System.out.println(a % b); // 2
    }
}
  • +的多种用法
    • 数字相加。
    • 字符相加:拿字符在计算机中底层存储对应的数据值来参与运算的。
    • 字符串相加:这里的+不是相加的意思,是字符串的连接符。字符串和其他类型的数据做拼接的时候,得到的结果还是字符串类型的数据。
package com.study.demo.operator;

/**
 * @Auther: lds
 * @Date: 2018/10/15
 * @Description:
 */
public class OperatorDemo03 {

    public static void main(String[] args) {
        // 整数的加法
        int a = 10;
        int b = 20;
        System.out.println(a + b); // 30
        System.out.println("-----------------");
        // 字符参与加法的操作
        char c = '0';
        char d = 'a';
        System.out.println(a + c); // 58
        System.out.println(a + d); // 107
        System.out.println("-----------------");
        // 字符串参与加法操作
        System.out.println("hello" + a); // hello10
        System.out.println("hello" + a + b); // "hello"+10="hello10",然后再和b进行拼接 hello1020
        System.out.println(a + b + "hello"); // 从左到右依次计算,先求和,在连接 30hello
    }
}

注:数字0是编码值为 48 所对应的字符常量,字母是编码值为 97 所对应的字符常量,它们都对应着ASCII表,具体可查看 https://baike.baidu.com/item/ASCII/309296?fr=aladdin

  • ++、-- 的用法
    • ++、-- 运算符:对变量做加1或者减1的操作。
    • ++、-- 既可以写在变量的前面又可以写在变量的后面。
    • 单独使用:++、-- 无论是写在变量的前面还是变量的后面,结果是一样的。
    • 和其他操作混合使用:

如果++、-- 写在变量的后面,先拿变量本来的值草鱼操作,结果后变量做++、-- 操作。

如果++、-- 写在变量的前面,先把变量做++、--,再用改变后的值参与++、-- 操作。

package com.study.demo.operator;

/**
 * @Auther: lds
 * @Date: 2018/10/15
 * @Description:
 */
public class OperatorDemo04 {

    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);
    }
}

1.3 赋值运算符

  • 基本的赋值运算符:=
  • 扩展的赋值运算符:+=、-=、*=、/=、%=
    • 把左边和右边的结果赋值给左边。
    • 注意:左边不能是常量。
    • 隐含了一个强制类型转换。
package com.study.demo.operator;

/**
 * @Auther: lds
 * @Date: 2018/10/15
 * @Description:
 */
public class OperatorDemo05 {

    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);
    }
}

1.4 关系运算符

  • ==,!=,>,<,>=,<=
  • 关系运算符的结果都是boolean类型的,也就是说要么是true,要么是false。
  • 注意事项
    • 关系运算符 “==” 不能写成 “=”
package com.study.demo.operator;

/**
 * @Auther: lds
 * @Date: 2018/10/15
 * @Description:
 */
public class OperatorDemo06 {

    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 10;
        System.out.println(a == b); // false
        System.out.println(a == c); // true
        System.out.println("-----------------");
        System.out.println(a != b); // true
        System.out.println(a != c); // false
        System.out.println("-----------------");
        System.out.println(a > b); // false
        System.out.println(a > c); // false
        System.out.println("-----------------");
        System.out.println(a >= b); // false
        System.out.println(a >= c); // true
        System.out.println("-----------------");
        int x = 3;
        int y = 4;
         System.out.println(x == y); // false
        // System.out.println(x = y);// 把 y 赋值给 x,把 x 的值输出
        boolean bb = (x == y);
        // 报错
        // boolean cc = (x = y);
        int cc = (x = y);
    }
}

1.5 逻辑运算符

  • 作用:逻辑运算符用于连接布尔类型表达式,在java中不可以写成3<x<6,应该写成x>3&&x<6
  • 基本用法:&(与)、|(或)、^(亦或)、 !(非) 
    • 与:&           有false则false
    • 或:|             有true则true
    • 异或:^        相同则false,不同则true
    • 非:!             true则false,false则true
package com.study.demo.operator;

/**
 * @Auther: lds
 * @Date: 2018/10/15
 * @Description:
 */
public class OperatorDemo07 {

    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
    }
}
  • &和&&的区别
    • 单&时,左边无论真假,右边都进行运算。
    • 双&时,如果左边为真,右边参与运算;如果左边为假,那么右边不参与运算。
    • “|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
package com.study.demo.operator;

/**
 * @Auther: lds
 * @Date: 2018/10/15
 * @Description:
 */
public class OperatorDemo08 {

    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); // 4
        System.out.println("y:" + y); // 4
    }
}

1.6 三元运算符

  • 基本使用
    • 格式:{关系表达式}?表达式1:表达式2
    • 如果条件为true,运算后的结果是表达式1;
    • 如果条件为false,运算后的结果是表达式2
package com.study.demo.operator;

/**
 * @Auther: lds
 * @Date: 2018/10/15
 * @Description:
 */
public class OperatorDemo09 {
    
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = (a > b) ? a : b;
        System.out.println("c:" + c); // 20
    }
}

获取三个数的最大值

package com.study.demo.operator;

/**
 * @Auther: lds
 * @Date: 2018/10/15
 * @Description:
 */
public class OperatorDemo10 {

    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); // 30
    }
}

2. 键盘录入Scanner

2.1 概述

我们目前在写程序的时候,数值都是固定的,但是实际开发中,数据肯定是变化的,所以,把数据改为键盘输入的,提高程序的灵活性。

2.2 引用数据类型的使用格式

与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格
式。
1. 导包:
   使用 import 导包,在类的所有代码之前导包(找到要使用的类型), java.lang 包下的所有类
   无需导入,可以直接使用
2. 定义变量,并创建对象赋值:
    数据类型 变量名 = new 数据类型();

3. 调用方法,每种引用数据类型都有其功能,我们可以调用该类型实例的功能:
    变量名.方法名();

2.3 基本使用步骤

1. 导包(位置放到 class 定义的上面)
import java.util.Scanner;
2. 创建对象
Scanner sc = new Scanner(System.in);
3. 调用方法接收数据
int x = sc.nextInt();

package com.study.demo.scanner;

import java.util.Scanner;

/**
 * @Auther: lds
 * @Date: 2018/10/15
 * @Description:
 */
public class ScannerDemo01 {

    public static void main(String[] args) {
        //创建键盘录入数据的对象
        Scanner sc = new Scanner(System.in);
        //接收数据
        System.out.println("请录入一个整数:");
        int i = sc.nextInt();
        //输出数据
        System.out.println("i:" + i);
    }
}

例:键盘输入两个数的并求和

package com.study.demo.scanner;

import java.util.Scanner;

/**
 * @Auther: lds
 * @Date: 2018/10/15
 * @Description:
 */
public class ScannerDemo02 {

    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 sum = a + b;
        System.out.println("sum:" + sum);
    }
}

大家可以练习上面的表达式,最大值哦ヾ(๑╹◡╹)ノ"ヾ(๑╹◡╹)ノ"ヾ(๑╹◡╹)ノ"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值