黑马程序员Java零基础视频教程笔记-运算符 1

简介: 黑马程序员Java零基础视频教程笔记-运算符

一、算数运算符详解和综合练习

1. 运算符和表达式

① 运算符:对字面量或者变量进行操作的符号

表达式:用运算符把字面量或者变量连接起来,符合java语法的式子就可以称为表达式。

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

③ 举例

int a = 10;

int b = 20;

int c = a + b;

+:是运算符,并且是算术运算符

a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式

2. 算数运算符

符号 作用
+
-
*
/
% 取模、取余

3. 样例

package com.itheima.arithmeticoperator;
public class ArithmeticoperatorDemo1{
    public static void main(String[] args){
        //+
        System.out.println(3 + 2);//5
        //-
        System.out.println(5 - 1);//4
        //*(shift + 数字8)
        System.out.println(7 * 9);//63
        //如果在计算的时候有小数参与
        //结论:
        //在代码中,如果有小数参与计算,结果有可能不精确的
        //为什么呢
        //暂时只要知道这个结论就可以了
        //具体的原因,我们到了JavaSE的时候,会再详细的讲解
        System.out.println(1.1 + 1.1);//2.2
        System.out.println(1.1 + 1.0);//2.1100000000000003
        System.out.println(1.1 - 1.01);
        System.out.println(1.1 * 1.01);
    }
}
package com.itheima.arithmeticoperator;
public class ArithmeticoperatorDemo2{
    //主入口
    //结论:
    //1.整数参与计算,结果只能得到整数
    //2.小数参与计算,结果可能是不精确的,如果我们需要精确计算,那么需要用到后面的知识点
    public static void main(String[] args){
        //除法
        System.out.println(10 / 2);//5
        System.out.println(10 / 3);//3
        System.out.println(10.0 / 3);//3.3333333333333335
        //取模,取余,实际上也是做除法运算,只不过得到的是余数而已
        System.out.println(10 % 2);//0
        System.out.println(10 % 3);//1
        //应用场景
        //1.可以用取模来判断,A是否可以被B整除
        //A % B   10 % 3
        //2.可以判断A是否为偶数
        //A % 2 如果结果为0,那么证明A是一个偶数;如果结果是1,那么证明A是一个奇数
        //三个玩家
        //把每一张牌都定义一个序号
        //拿着序号 %3 如果结果为1,就发给第一个玩家
        //如果结果为2,就发给得二个玩家
        //如果结果为0,就发给第三个玩家
    }
}

4. 练习

package com.itheima.test;
import java.util.Scanner;
public class test1{
    public static void main(String[] args){
        //键盘录入一个三位数,获取其中的个位,十位,百位
        //1.键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个三位数");
        int number = sc.nextInt();
        //2.获取个位,十位,百位
        //公式:
        //个位:数字%10
        //十位:数字/10%10
        //百位:数字/10/10%10
        //……
        int ge = number % 10;
        int shi = number / 10 % 10;
        int bai = number /100 % 10;
        System.out.println(ge);
        System.out.println(shi);
        System.out.println(bai);
    }
}

二、隐式转换和强制转换

1. “+”操作的三种情况

① 数字相加

② 字符串相加

③ 字符相加

【注】数字进行运算时,数据类型不一样不能运算,需要转成一样的,才能运算

2. 类型转换的分类

① 隐式转换

② 强制转换

3. 隐式转换

① 定义:把一个取值范围小的数值,转成取值范围大的数据

int a = 10;
double b = a;

② 取值范围:byte < short < int < long < float < double

③ 什么时候转换:

数据类型不一样,不能进行计算,需要转换成一样的才可以进行计算

④ 转换规则:

取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算

byte short char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算

4. 强制转换

① 如果把一个取值范围大的数值,赋值给取值范围小的变量,是不允许直接赋值的。如果一定要这么做就需要加入强制转换

② 格式:目标数据类型 变量名 =(目标数据类型)被强制转换的数据

5. 样例

package com.itheima.arithmeticoperator;
public class ArithmeticoperatorDemo3{
    public static void main(String[] args){
        byte b1 = 100;
        byte b2 = 100;
        //现在我们要强转的是谁
        //b1 + b2计算之后的结果
        //byte(b1) + b2 强转的是b1,并不是最终的结果
        byte result = byte(b1 + b2);
        System.out.println(result);//结果发生错误,因为要转换的数据过大
    }
}

三、字符串和字符的加操作

1. 字符串的“+”操作

① 当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算数运算符了。会将前后的数据进行拼接,并产生一个新的字符串。

例如:“123”+123=“123123”

② 进行“+”操作时,从左到右逐个执行

例如:1+99+“年黑马”=“200年黑马”

③ 练习

package com.itheima.test;
import java.util.Scanner;
public class test1{
    public static void main(String[] args){
        //键盘录入一个三位数,获取其中的个位,十位,百位
        //1.键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个三位数");
        int number = sc.nextInt();
        //2.获取个位,十位,百位
        //公式:
        //个位:数字%10
        //十位:数字/10%10
        //百位:数字/10/10%10
        //……
        int ge = number % 10;
        int shi = number / 10 % 10;
        int bai = number /100 % 10;
        System.out.println("个位是:"+ge);
        System.out.println("十位是:"+shi);
        System.out.println("百位是:"+bai);
    }
}

2. 字符的“+”操作

当字符+字符/数字时,会把字符通过ASCII码表查询到对应的数字再进行计算

package com.itheima.arithmeticoperator;
public class ArithmeticoperatorDemo4{
    public static void main(String[] args){
        char c = 'a';
        int result = c + 0;
        System.out.println(result);
    }
}

四、自增自减运算符

1. 基本用法

符号 作用 说明
++ 变量的值加1
- - 变量的值减1

注意事项:++和- -既可以放在变量的前边,也可以放在变量的后边

2. 两种用法

① 单独使用

++和- -无论是放在变量的前边还是后边,单独写一行结果是一样的

package com.itheima.arithmeticoperator;
public class ArithmeticoperatorDemo5{
    public static void main(String[] args){
        //++和--
        int a = 10;
        //表示把变量a里面的值+1
        a++;
        System.out.println(a);//11
        //表示把变量a里面的值+1
        ++a;
        System.out.println(a);//12
        //表示把变量a里面的值-1
        a--;
        System.out.println(a);//11
        //表示把变量a里面的值-1
        --a;
        System.out.println(a);//10      
    }
}

② 参与计算

先用后加

int a = 10;
int b = a++;

先加后用

int a = 10;
int b = ++a;

3. 样例

package com.itheima.arithmeticoperator;
public class ArithmeticoperatorDemo6{
    public static void main(String[] args){
         int x = 10;
         //后++:先用后加
         //先把x变量中的值拿出来用,赋值给y,然后再进行自增
         //赋值给y的值是自增前的
         int y = x++;// x = 11 y = 10
         //先++:先加后用
         //先把x进行自增,然后把自增后的结果赋值给左边的变量
         //先把x自增,变成12,然后再把自增后的12赋值给z
         int z = ++x;// x =12 z = 12
         System.out.println("x:"+x);//12
         System.out.println("y:"+y);//10
         System.out.println("z:"+z);//12
    }
}


目录
相关文章
|
17天前
|
Java 程序员
JAVA程序员的进阶之路:掌握URL与URLConnection,轻松玩转网络资源!
在Java编程中,网络资源的获取与处理至关重要。本文介绍了如何使用URL与URLConnection高效、准确地获取网络资源。首先,通过`java.net.URL`类定位网络资源;其次,利用`URLConnection`类实现资源的读取与写入。文章还提供了最佳实践,包括异常处理、连接池、超时设置和请求头与响应头的合理配置,帮助Java程序员提升技能,应对复杂网络编程场景。
41 9
|
1天前
|
SQL 存储 Java
面向 Java 程序员的 SQLite 替代品
SQLite 是轻量级数据库,适用于小微型应用,但其对外部数据源支持较弱、无存储过程等问题影响了开发效率。esProc SPL 是一个纯 Java 开发的免费开源工具,支持标准 JDBC 接口,提供丰富的数据源访问、强大的流程控制和高效的数据处理能力,尤其适合 Java 和安卓开发。SPL 代码简洁易懂,支持热切换,可大幅提高开发效率。
|
12天前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
12天前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
12天前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
|
14天前
|
SQL Java 程序员
倍增 Java 程序员的开发效率
应用计算困境:Java 作为主流开发语言,在数据处理方面存在复杂度高的问题,而 SQL 虽然简洁但受限于数据库架构。SPL(Structured Process Language)是一种纯 Java 开发的数据处理语言,结合了 Java 的架构灵活性和 SQL 的简洁性。SPL 提供简洁的语法、完善的计算能力、高效的 IDE、大数据支持、与 Java 应用无缝集成以及开放性和热切换特性,能够大幅提升开发效率和性能。
|
19天前
|
IDE Java 程序员
C++ 程序员的 Java 指南
一个 C++ 程序员自己总结的 Java 学习中应该注意的点。
20 5
|
21天前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
本系列教程详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。对于希望快速学习Kotlin的用户,推荐查看“简洁”系列教程。本文档重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android library开发建议以及在Kotlin和Java之间互相调用的方法。
18 1
|
6天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
3天前
|
安全 Java 开发者
深入解读JAVA多线程:wait()、notify()、notifyAll()的奥秘
在Java多线程编程中,`wait()`、`notify()`和`notifyAll()`方法是实现线程间通信和同步的关键机制。这些方法定义在`java.lang.Object`类中,每个Java对象都可以作为线程间通信的媒介。本文将详细解析这三个方法的使用方法和最佳实践,帮助开发者更高效地进行多线程编程。 示例代码展示了如何在同步方法中使用这些方法,确保线程安全和高效的通信。
16 9