• Java的运算符与逻辑控制


    作者:~小明学编程 

    文章专栏:JavaSE基础

    目之所及皆为回忆,心之所想皆为过往
    在这里插入图片描述

    由于Java的运算符与C语言的相差不大,在这里主要介绍一下Java运算符的特别之处,就不做详细的介绍了。

    目录

    运算符

    基本四则运算符:加减乘除模(+ - * / %)

    增量运算符 += -= *= %=

     自增/自减运算符 ++ --

    关系运算符

    逻辑运算符

    位运算符与移位运算

    条件运算符

    运算符的优先级

    逻辑控制

    分支结构

    if 语句

    switch语句

    循环结构

    输入输出

    输出到控制台


    运算符

    基本四则运算符:加减乘除模(+ - * / %)

    加减乘除在这里就不讲了,和C语言没啥区别,在这里值得我们说的是取余运算%,在JAVA中

    我们不仅能对整数进行%运算,还能对浮点型进行%运算。

    1. public class Dome {
    2. public static void main(String[] args) {
    3. int x=4;
    4. int y=3;
    5. float a=11.5f;
    6. float b=1.5f;
    7. System.out.println(a%b);
    8. System.out.println(x%y);
    9. }
    10. }

    增量运算符 += -= *= %=

     这里我们会看到有报错,这是因为我们事先对b进行了一个整型提升,b+5的类型成为了int型赋给byte型明显放不下,所以会报错,但是b+=5;则不会报错,这是因为我们的增量运算符给b+5做了一个强制类型转换等同于b=(byte)(b+5);

    1. public static void main(String[] args) {
    2. int a=20;
    3. a+=10;
    4. byte b=5;
    5. // b=b+5;错误写法
    6. b+=5;//等同于b=(byte)(b+5);
    7. System.out.println(a+" "+b);
    8. }

     自增/自减运算符 ++ --

    自增自减运算符与C语言一样详见请看http://t.csdn.cn/S5Ml9

    关系运算符

    关系运算符主要有六个 : == != < > <= >= ,其计算结果是 true 或者 false

    逻辑运算符

    逻辑运算符主要有三个 : && || ! ,运算结果都是 boolean 类型。
    & | 如果表达式结果为 boolean , 也表示逻辑运算 . 但与 && || 相比 , 它们不支持短路求值 .
    也就是在&运算符中如果我们判断了&左边是假,我们不会停止判断会继续判断右边是否为真,当然即使右边为真也不影响我们最后的结果为假。

    位运算符与移位运算

    http://t.csdn.cn/cZoDV这里是C语言的运算符和JAVA的基本一样,不一样的是移位运算,这里我们主要说一下

    无符号右移 >>>: 最右侧位不要了 , 最左侧补 0.
    注意 :
    1. 左移 1 , 相当于原数字 * 2. 左移 N , 相当于原数字 * 2 N 次方 .
    2. 右移 1 , 相当于原数字 / 2. 右移 N , 相当于原数字 / 2 N 次方 .
    3. 由于计算机计算移位效率高于计算乘除 , 当某个代码正好乘除 2 N 次方的时候可以用移位运算代替 .
    4. 移动负数位或者移位位数过大都没有意义 .

    条件运算符

    条件运算符只有一个 :
    表达式 1 ? 表达式 2 : 表达式 3
    表达式 1 的值为 true , 整个表达式的值为 表达式 2 的值 ;
    表达式 1 的值为 false , 整个表达式的值为 表达式 3 的值 .
    也是 Java 中唯一的一个 三目运算符 , 是条件判断语句的简化写法

    运算符的优先级

    运算符之间是有 优先级 . 具体的规则我们 不必记忆 . 在可能存在歧义的代码中加上括号即可

    逻辑控制

    分支结构

    if 语句

    1. if(布尔表达式){
    2. // 语句
    3. }

    这里我们需要强调的是if后面的括号里面必须是布尔表达式,这与C语言是不同的,不能将一个整型变量放到里面进行判断。

    switch语句

    这里我们重点讲解一下Java的switch语句

    1.多个case后的常量值不可以重复
    2.switch的括号内只能是以下类型的表达式:
    基本类型:byte、char、short、int,注意不能是long类型
    引用类型:String常量串、枚举类型

    循环结构

    循环结构与C语言唯一出入还是括号内必须放布尔表达式,主要是多多练习

    输入输出

    输出到控制台

    基本语法
     
    1. System.out.println(msg); // 输出一个字符串, 带换行
    2. System.out.print(msg); // 输出一个字符串, 不带换行
    3. System.out.printf(format, msg); // 格式化输出
    1. int x = 10;
    2. System.out.printf("x = %d\n", x);

     

    从键盘输入
    使用 Scanner 读取字符串 / 整数 / 浮点数
    1. import java.util.Scanner; // 需要导入 util 包
    2. Scanner sc = new Scanner(System.in);
    3. System.out.println("请输入你的姓名:");
    4. String name = sc.nextLine();
    5. System.out.println("请输入你的年龄:");
    6. int age = sc.nextInt();
    7. System.out.println("请输入你的工资:");
    8. flfloat salary = sc.nextFloat();
    9. System.out.println("你的信息如下:");
    10. System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
    11. sc.close(); // 注意, 要记得调用关闭方法

    1. public static void main(String[] args) {
    2. Scanner scanner = new Scanner(System.in);
    3. int a= scanner.nextInt();
    4. String str = scanner.nextLine();
    5. System.out.println(str);
    6. System.out.println(a);
    7. if (a%2==0)
    8. System.out.println("偶数");
    9. else
    10. System.out.println("奇数");
    11. }

     我们可以看到我们还没有输入字符程序就直接进行下去把我们的数字给打印下来了,这是BUG当我们的数字输入在字符串前面的时候程序会直接向下运行,不给我们接受字符串的机会,要想接受字符串只有将str的接受放在a 的前面才行。

  • 相关阅读:
    AVL树和红黑树
    【JS】获取 Headers 头部信息
    Vim基础
    JMETER连接数据库
    654. Maximum Binary Tree
    Hive中内部表、外部表、分区表、分桶表之间的关系
    多线程&并发篇---第四篇
    【实验技术笔记】细胞表型检测之细胞凋亡(Hoechst染色 + PI染色 + TUNEL 染色 + Annexin V-PI 双染)
    利用Python开发一个上传文件的服务
    java基础10题
  • 原文地址:https://blog.csdn.net/m0_56911284/article/details/126211111