小闫陪你入门 Java (三)

简介: 小闫陪你入门 Java (三)

Java 基础

7.Java 运算符

7.1算术运算符

加减乘除与 Python 中一致,分别为 +-*/。取余为 %。不同的有以下两种,分别为自增和自减。

自增为 ++,自减为 --。即一个数字加1或者减1。

public class HelloDemo {
    public static void main(String[] args) {
        // 运算符
        int i1 = 10;
        int i2 = 22;
        int i3 = 25;
        int i4 = 66;
        System.out.println("i1 + i2 = " + (i1 + i2));
        System.out.println("i3 - i2 = " + (i3 - i2));
        System.out.println("i4 * i1 = " + (i4 - i1));
        System.out.println("i2 / i1 = " + (i2 / i1));
        // 自增自减
        ++i1;
        System.out.println(i1);
        --i1;
        System.out.println(i1);
    }
}

详解自增/自减:

  1. int b =++a;

上述过程其实为两步,第一步为加 1 后重新赋值,第二步为将新值 a 赋值给 b。

  1. int b = a++

此过程与之前不同,它是先将 a 赋值给 b,然后 a 自增操作。

自减同理

7.2 关系运算符

关系运算符即比较两个数值之间的关系,如大小等。与 Python 中相同的为 == 表示相等; != 表示不相等; > 表示大于; < 表示小于; >= 表示大于等于; <= 表示小于等于。

public class HelloDemo {
    public static void main(String[] args) {
        int s = 10;
        int n = 20;
        System.out.println("s == n = " + (s == n) );
        System.out.println("s != n = " + (s != n) );
        System.out.println("s > n = " + (s > n) );
        System.out.println("s < n = " + (s < n) );
        System.out.println("n >= s = " + (n >= s) );
        System.out.println("n <= s = " + (n <= s) );
    }
}

7.3 位运算符

位运算符即将十进制等数字转换为二进制数字后,对每一个位置上字符进行操作。如下示例,大家可以理解一下:

A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011
操作符 描述
如果相对应位都是1,则结果为1,否则为0
| 如果相对应位都是 0,则结果为 0,否则为 1
^ 如果相对应位值相同,则结果为0,否则为1
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。
>> 按位右移运算符。左操作数按位右移右操作数指定的位数。
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

7.4 逻辑运算符

逻辑运算符即与或非关系。与 Python 不同, && 表示与关系; || 表示或关系; ! 表示非关系。

7.5 赋值运算符

下面列出 Java 中的赋值运算符:

操作符 描述
= 简单的赋值运算符,将右操作数的值赋给左侧操作数
+ = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数
- = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数
* = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数
/ = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数
(%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数
<< = 左移位赋值运算符
>> = 右移位赋值运算符
&= 按位与赋值运算符
^ = 按位异或赋值操作符
| = 按位或赋值操作符

7.6 三元运算符

Java 中三元运算符与 Python 中大不一样,其表示为:

  1. 类型变量=表达式?如果条件为真时的操作:条件为假时的操作

关键在于符号 ?:

7.7 instanceof 运算符

它是用来判断某个变量是否为某类型或者某个对象是否为某类或者接口的一个对象。如果是为真。例如:

String name = "Ethan";
boolean result = name instanceof String;
class Vehicle {}
public class Car extends Vehicle {
   public static void main(String[] args){
      Vehicle a = new Car();
      boolean result =  a instanceof Car;
      System.out.println( result);
   }
}

7.8 运算符优先级

运算符优先级是如果代码中包含多种运算符,那么优先执行谁的问题。其如数学,有括号先括号(小括号优先于中括号),乘除优先于加减等等。

下面附网上一个表格,具有最高优先级的运算符在表的最上面,最低优先级的在表的底部,以供大家忘记时进行查看:

类别 操作符 关联性
后缀 () [] . (点操作符) 左到右
一元 + + - !〜 从右到左
乘性 * /% 左到右
加性 + - 左到右
移位 >> >>>  << 左到右
关系 >> = << = 左到右
相等 ==  != 左到右
按位与 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 | | 左到右
条件 ?: 从右到左
赋值 = + = - = * = / =%= >> = << =&= ^ = | = 从右到左
逗号 左到右

8.循环

循环即将相同的逻辑多次执行。与 Python 相同,它也有 while 循环和 for 循环,但是其比 Python 多了一种 do...while 循环。下面即详细看看。

8.1 while 循环

先来看其基本语法,即布尔表达式为 True 时循环一直执行。

while( 布尔表达式 ) {
    // 循环执行逻辑
}

示例如下:

public class Test {
    public static void main(String args[]) {
        // while 循环
        int int1 = 10;
        while (int1 > 0) {
            System.out.println(int1);
            int1--;
        }
    }
}

8.2 for 循环

for 循环如同 Python 中的 for 循环一样,生来就是简化代码操作的。

for(初始化; 布尔表达式; 更新) {
    // 代码语句
}

大家看到上述语法也许有些懵逼,我们类比 Python 中的 for 循环进行解读。Python 中:

for i in range(3):
    print(i)

要想达到同样的效果,Java 中代码如下:

public class Test{
    public static void main(String args[]) {
        // for 循环
        for (int x = 0; x < 3; x = x + 1){
            System.out.println(x);
        }
    }
}

即在 for 后的括号中,先填写一个控制循环的变量,再填写一个判断条件,最后更新变量值已达到控制循环的目的。

从上述代码可以看出 Java 确实代码量比 Python 多一点。

增强 for 循环:

大家想起 Python 中有如下操作:

namelist = ['Ethan', 'yan', 'liang']
for name in list:
    print(name, end=",")

可以循环遍历姓名列表并且打印输出,那么 Java 中呢?Java 从 Java5 的时候引入了一种方式,称为增强操作,写为如下:

public class Test {
    public static void main(String args[]){
        // 增强for循环
        String [] namelist = {"Ethan", "yan", "liang"};
        for (String name: namelist) {
            System.out.print(name);
            System.out.print(",");
        }
    }
}

注意:其中列表并不是中括号,而是大括号。 print() 函数打印输出后不会执行换行操作。

8.3 do... while 循环

此循环与 while 循环类似,不同点在于 do...while 循环至少执行一次。(如判断条件不满足,while 循环不会执行,但是 do...while 循环会执行一次)先来看起语法:

do {
    // 代码语句
}while( 布尔表达式 )

其实从代码中即可分析出原因,因为代码块先执行,条件表达式后执行。

public class Test {
    public static void main(String args[]) {
        int a = 10;
        do {
            System.out.println(a);
            a--;
        }while (a<0);
    }
}

上例中 while 的判断条件不满足,如果是 while 循环的话则不会执行;而上述例子大家可以进行验证,会返回 10。

8.4 终止循环

与 Python 中相同,Java 中也有两个关键字用来终止循环,一个为 break,一个为 continue。

break:终止当前循环。

continue:终止本次循环。(比如循环输出1到10,在7的时候遇到了语句 continue,那么7不会输出,而8、9等正常输出)

9.条件语句

9.1 if

我们来看一下最简单的 if 语句如何书写:

if( 布尔表达式 ) {
    // 布尔表达式为true时执行的语句
}

示例如下:

public class Test{
    public static void main(String args[]){
        // if
        int i = 1;
        if(i==1){
            System.out.println("值为1");
        }
    }
}

Java 中字符串用双引号包裹。

9.2 if...else

语法为:

if(布尔表达式){
   //如果布尔表达式的值为true
}else{
   //如果布尔表达式的值为false
}

过于简单,不再示例。

9.3 if...else if...else

此为多条件判断情况,语法如下:

if(布尔表达式 1){
   //如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
   //如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
   //如果布尔表达式 3的值为true执行代码
}else {
   //如果以上布尔表达式都不为true执行代码
}

类比于 Python 中的语法:

if 条件1:
    条件为真时执行
elif 条件2:
    条件为真时执行
else:
    条件都不满足时执行

其实 elif 就是 elseif 的缩写。

当然,Java 中的条件语句也支持嵌套操作

相关文章
|
17天前
|
开发框架 IDE Java
java制作游戏,如何使用libgdx,入门级别教学
本文是一篇入门级教程,介绍了如何使用libgdx游戏开发框架创建一个简单的游戏项目,包括访问libgdx官网、设置项目、下载项目生成工具,并在IDE中运行生成的项目。
34 1
java制作游戏,如何使用libgdx,入门级别教学
|
8天前
|
安全 Java 测试技术
🌟Java零基础-反射:从入门到精通
【10月更文挑战第4天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
14 2
|
1月前
|
Java 程序员 UED
Java中的异常处理:从入门到精通
【9月更文挑战第23天】在Java编程的世界中,异常是程序执行过程中不可避免的事件,它们可能会中断正常的流程并导致程序崩溃。本文将通过浅显易懂的方式,引导你理解Java异常处理的基本概念和高级技巧,帮助你编写更健壮、更可靠的代码。我们将一起探索如何捕获和处理异常,以及如何使用自定义异常来增强程序的逻辑和用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的见解和实用的技巧。
35 4
|
2月前
|
算法 Java 开发者
Java 编程入门:从零到一的旅程
本文将带领读者开启Java编程之旅,从最基础的语法入手,逐步深入到面向对象的核心概念。通过实例代码演示,我们将一起探索如何定义类和对象、实现继承与多态,并解决常见的编程挑战。无论你是编程新手还是希望巩固基础的开发者,这篇文章都将为你提供有价值的指导和灵感。
|
1月前
|
Java 程序员
Java中的异常处理:从入门到精通
在Java编程的世界中,异常处理是保持程序稳定性和可靠性的关键。本文将通过一个独特的视角—把异常处理比作一场“捉迷藏”游戏—来探讨如何在Java中有效管理异常。我们将一起学习如何识别、捕捉以及处理可能出现的异常,确保你的程序即使在面对不可预见的错误时也能优雅地运行。准备好了吗?让我们开始这场寻找并解决Java异常的冒险吧!
|
2月前
|
Java 程序员 UED
Java 中的异常处理:从入门到精通
【8月更文挑战第31天】在Java编程的世界中,异常处理是保持应用稳定性的重要机制。本文将引导你理解异常的本质,学会如何使用try-catch语句来捕获和处理异常,并探索自定义异常类的魅力。我们将一起深入异常的世界,让你的代码更加健壮和用户友好。
|
2月前
|
Java 数据库连接 开发者
Java中的异常处理:从入门到精通
【8月更文挑战第31天】 在编程世界中,错误和异常就像是不请自来的客人,总是在不经意间打扰我们的程序运行。Java语言通过其异常处理机制,为开发者提供了一套优雅的“待客之道”。本文将带你走进Java异常处理的世界,从基础语法到高级技巧,再到最佳实践,让你的程序在面对意外时,也能从容不迫,优雅应对。
|
5月前
|
安全 Java
从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)
从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)
|
4月前
|
存储 Java API
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
74 0