java 两数相除 取向上_JAVA基础系列 第2篇: 运算符的基本使用

上篇回顾

上篇的内容不知道小伙伴们学习的怎样,我这里出几个问题帮助下大家巩固一下,大家看看能不能直接回答出来。

  1. java中的注释分几种,使用什么符号表示?
  2. java中的基本数据类型包括几种?
  3. 变量的定义格式是什么?
  4. 标识符的组成规则是什么?
  5. 类型转换分为哪些?

学习目标

  1. 运算符
    1.1. 算术运算符
    1.2. 赋值运算符
    1.3. 自增自减运算符
    1.4. 关系运算符
    1.5. 逻辑运算符
    1.6. 三元运算符
  2. 键盘录入

内容

一. 运算符

1.1. 算术运算符
符号作用说明
+对数字进行加法运算,对字符串进行拼接。
-对数字进行减法运算。
*对数字进行乘法运算。
/对数字进行除法运算。整数相除结果为整数,只有浮点类型参数参与运算结果才能得到小数部分。
%取余获取两数相除的余数。

1.1.1. 算术运算符基本使用

public class OperatorDemo {
    public static void main(String[] args) {
        int a = 5;
        int b = 2;
        //进行算术运算
        System.out.println(a + b);  // 7
        System.out.println(a - b);  // 3
        System.out.println(a * b);  // 10
        
        //除法得到的是商,取余得到是余数
        System.out.println(a / b);  // 2
        System.out.println(a % b);  // 1
        
        //整数相除只能得到整数,要想得到小数,必须有浮点数(float 类型和 double 类型)的参与
        System.out.println(5 / 2); // 2
        System.out.println(5.0 / 2); // 2.5
    }
}

1.1.2. 算法运算符类型提升

public class OperatorDemo {
    public static void main(String[] args) {
        
        // 1、byte、short、char变量之间进行运算时,类型自动提升为int。
        byte b = 10;
        
        // b + 5自动提升为int类型
        // byte b2 = b + 5;  // 编译报错
        int b2 = b+5; 
        System.out.println(b2);
        
        
        
        // 2. 变量参与运算时,最终结果以最高类型为准。
        int num1 = 10;
        long num2 = 20L;
        long num3 =  num1 + num2;
        System.out.println(num3);
    }
}
9312d3abaca9182619dd9086a0fb849d.png

1.1.3. 字符、字符串拼接

字符字符类型(char)参与运算会自动转换成ASCII编码表中对应的数值进行运算。

常见字符对应:

'a'~'z':97~122

'A'~'Z':65~90

'0'~'9':48~57

基本汉字:19968~40869

public class CharDemo{
    public static void main(String[] args){
        char c = 'a';
        int num = c + 10; //使用编码表中'a'对应的十进制数97进行运算
        System.out.println(num); //107
    }
}

字符串

与字符串进行 “+” 运算,是进行字符串的拼接操作,不会做加法运算。

public class StringAddDemo{
    public static void main(String[] args){
        int age = 20;
        System.out.println("我的年龄是:" + age + "岁"); // 输出结果:我的年龄是:20岁
        
        int num = 10;
        System.out.println("我的年龄是:" + age + num + "岁"); // 输出结果:我的年龄是:2010岁
        
        // 想要进行数值的运算,需要让数值在与字符串拼接之前先进行运算,然后再拼接
        System.out.println("我的年龄是:" + (age + num) + "岁"); // 输出结果:我的年龄是:30岁
    }
}
1.2. 赋值运算符
符号作用说明
=赋值a=10,将10赋值给变量a
+=先加后赋值a+=b,将a+b的值赋值给a
-=先减后赋值a-=b,将a-b的值赋值给a
*=先乘后赋值a*=b,将a×b的值赋值给a
/=先除后赋值a/=b,将a÷b的值赋值给a
%=取余后赋值a%=b,将a÷b的余数赋值给a
1.2.1 赋值运算符基本使用
public class AssignmentDemo {
    public static void main(String[] args) {
        //1. 基本赋值运算符 =
        int a = 10;
        System.out.println(a);
     
        //2. 扩展赋值运算符
        int b = 20;
        b += 5;
        System.out.println(b);
        // b -= 5;
        // System.out.println(b);
        // b *= 5;
        // System.out.println(b);
        // b /= 5;
        // System.out.println(b);
        // b %= 5;
        // System.out.println(b);
        
        // 3. 扩展赋值运算符隐含了强制类型转换
        byte num = 10;
        num += 5;
        System.out.println(num);
        
        // num  = num + 5; //报错
        // num += 5 相当于以下代码:
        num = (byte)(num + 5);
        System.out.println(num);
    }
}
1.3. 自增自减运算符
符号作用说明
++自增变量的值加1
--自减变量的值减1
1.3.1. 自增自减运算符基本使用
public  class SelfIncreasingOrDecreasingDemo{
    public static void main(String[] args){
        
        // 1、单独运算时,运算符放在前面或者后面效果一样。
        // int a = 10;
        // a++;
        // int b = 10;
        // ++b;
        
        // System.out.println(a); //11
        // System.out.println(b); //11
        // System.out.println(10++) 引发编译错误,自增自减不能对常量进行操作
        
        // 2、参与其他运算时
        // a++:先将a的值参与其他运算,运算结束后再自增1。
        // ++a:先将a自增1,再参与其他运算。
        
        // int a = 10;
        // int b = a++;
        // System.out.println(a); //11
        // System.out.println(b); //10
        
        int a = 10;
        int b = ++a;
        System.out.println(a); //11
        System.out.println(b); //11
    }
}
1.4. 关系运算符
符号作用说明
==等于a == b,判断如果a等于b,则为true,否则为false
!=不等于a != b,判断如果a不等于b,则为true,否则为false
>大于a > b,如果a大于b,则为true,否则为false
>=大于等于a >= b,如果a大于等于b,则为true,否则为false
<小于a < b,如果a小于b,则为true,否则为false
<=小于等于a <= b,如果a小于等于b,则为true,否则为false
1.4.1. 关系运算符基本使用
public class RelationshipDemo {
    public static void main(String[] args) {
        // 定义变量
        int i = 10;
        int j = 20;
        int k = 10;
        
        // 相等 ==
        System.out.println(i == j);
        System.out.println(i == k);
        System.out.println("--------");
        
        // 不等 !=
        System.out.println(i != j);
        System.out.println(i != k);
        System.out.println("--------");

        // 大于 >
        System.out.println(i > j);
        System.out.println(i > k);
        System.out.println("--------");
        
        // 大于等于 >=
        System.out.println(i >= j);
        System.out.println(i >= k);
        System.out.println("--------");
        
        // 关系运算法的运算结果都是布尔类型(boolean), 要么是 true, 要么是 false
        // 如果把 == 写成了 =,会变成把 j 的值赋值给了 i,然后输出 i 的值
        System.out.println(i = j);
    }
}
1.5. 逻辑运算符
符号作用说明
&逻辑与表达式1 & 表达式2  (所有表达式均为true,结果才为true,会执行全部表达式)
|逻辑或表达式1 | 表达式2 (任意表达式为true,结果就为true,会执行全部表达式)
!逻辑非! 表达式 (对表达式结果取反)
^逻辑异或表达式1 ^ 表达式2 (左右两边结果不同为true,相同为false)
&&短路与作用和 & 相同,但是有短路效果,即前面条件满足则不执行后面表达式
||短路或作用和 | 相同,但是有短路效果,即前面条件满足则不执行后面表达式
1.5.1. 逻辑运算符基本使用
public class LogicDemo {
    public static void main(String[] args) {
        //定义变量
        int i = 10;
        int j = 20;
        int k = 30;
        
        // && 有false则false
        System.out.println((i > j) && (i > k)); // false && false
        System.out.println((i  k)); // true && false
        System.out.println((i > j) && (i false && true
        System.out.println((i true && true
        System.out.println("--------");
        
        // || 有true则true
        System.out.println((i > j) || (i > k)); // false || false
        System.out.println((i  k)); // true || false
        System.out.println((i > j) || (i false || true
        System.out.println((i true || true
        System.out.println("--------");
        
        int a = 10;
        int b = 10;
        
        // 逻辑与 & : 所有表达式都会执行
        boolean flag = a > b & a == b++; // false & true 
        System.out.println(flag); // false
        System.out.println(b); // 11
        
        // 短路与 && : 具有短路效应
        boolean flag = a > b && a == b++;
        System.out.println(flag); // false
        System.out.println(b); // 10    
        
        // 逻辑或 | :所有表达式都会执行
        boolean flag = a == b | a == ++b;  // true | false
        System.out.println(flag); // true
        System.out.println(b); // 11    
        
        // 短路或 || :有true则true,但是具有短路效应。
        boolean flag = (a == b) || (a == ++b);  // true
        System.out.println(flag); // true
        System.out.println(b); // 10    
    }
}
1.6. 三元表达式
/**
 * 语法格式:判断表达式 ? 表达式1 : 表达式2;
 *      执行判断表达式,判断结果是boolean类型,为 true 时执行表达式1并返回结果,false 时执行表达式2并返回结果
 */

// 1:使用三元运算符判断两个整数是否相等
int a = 10;
int b = 20;
boolean bb = a == b ? true:false;
System.out.println(bb); // false

// 2:使用三元运算符求两个整数的较大值
int a = 10;
int b = 20;
int max = a > b ? a : b;
System.out.println(max); // 20

二. 键盘录入

/**
 * Scanner是JDK提供的用于【获取键盘输入的数据】的工具类。该类位于【java.util】包下。
 *
 * 使用步骤如下:
 */

// 1. 导包
import java.util.Scanner;
public class ScannerDemo {
    public static void main(String[] args) {
        // 2. 创建Scanner的对象
        Scanner sc = new Scanner(System.in);

        //提示用户输入
        System.out.println("请输入第一个数字:");
        
        // 3. 调用方法接收数据(这里的nextInt()方法是只接受一个int类型参数,该对象还有其它方法,具体详情请参考API文档)
        int a = sc.nextInt();

        System.out.println("请输入第二个数字:");
        int b = sc.nextInt();

        // 求和
        int sum = a + b;
        // 打印求和结果
        System.out.println("和为:" + sum);
    }
}

总结

这一篇我们主要学习了运算符,这一块是基础中较为重要的一部分,小伙伴们一定要学好呦,不然后面的流程控制部分就有点难懂了~

今天的文章到这里就结束了,小伙伴们有什么建议或者意见请联系我改进哦,你们的支持是我最大的动力!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值