首页 > 编程语言 >Java-Day-3(运算符 + 标识符 + 键盘输入)

Java-Day-3(运算符 + 标识符 + 键盘输入)

时间:2023-04-03 21:55:23浏览次数:45  
标签:单词 Java ++ 运算符 int 标识符 Day 赋值

Java-Day-3

运算符

  1. 算术运算符
  2. 关系运算符 [ 比较运算符 ]
  3. 逻辑运算符
  4. 赋值运算符
  5. 三元运算符
  6. 位运算符 [ 需要二进制基础 ]

算术运算符

  • +、-、*、/

    • System.out.println(10.0 / 4); //2.5
      double d = 10 / 4; //2.0
      
      //数学公式有时不能硬搬,例如:摄氏温度 = 5 / 9 * ( 华氏温度 - 100 ),编码时就需要将 5 写成 5.0,因为 5 / 9 = 0
      
  • %:取模( 取余 )

    • 本质公式:a % b = a - a / b * b

    • System.out.println(10 % - 3); //1
      System.out.println(- 10 % - 3); // -1
      
  • ++、-- :自增、自减

    • 符号放前 — 先运算后赋值

    • 符号放后 — 先赋值后运算

    • int a = 1;
      int b = ++ a; //等价于 a = a + 1; b = a
      
      int a = 1;
      int b = a ++; //等价于 b = a; a = a + 1
      
      int i = 1;
      i = i ++; //i 输出为1;( 自行修改会有一个temp )
      // 1.temp = i; 2. i = i + 1; 3. i = temp;
      
      int i = 1;
      i = ++ i; //i 输出为2;
      // 1. i = i ++; 2. temp = i; 3. i = temp;
      
    • 但若是独立使用,放前放后都等价于 i = i + 1

关系运算符

结果都是Boolean型

  • ==
  • !=
  • < 、>
  • <= 、>=
  • instanceof

逻辑运算符

  • 短路与:&&
    • 如果第一个条件为 F,则直接 F,不再看第二个数
  • 短路或:||
    • 如果第一个条件为 T,则直接 T,不再看第二个数
  • 取反:!
  • 逻辑与:&
    • 不管第一个是否为 F,都得看第二个( 效率低 )
  • 逻辑或:|
    • 不管怎样都要看第二个( 效率低 )
  • 逻辑异或:^
int a = 2, b = 4;
if(a < 1 & ++b < 50){ Sys... } //false,且 b 为 5
// && 的话 b 就为 4

if(a++ == 3 & ++b < 50){ Sys... } //false,a 为 3
boolean x = false;
if((a++ == 2)&&(y = true)){ Sys... } //true,注意是把 true 赋给了y
a b a&b / a&&b a|b / a||b a^b
T T T T F
T F F T T
F T F T T
F F F F F
一错则错 全错才错 不同才错

赋值运算符

  • =

  • +=、-=、*=、/=、%=

    • a += b:a = a + b

    • 复合赋值运算符会进行类型转换

      byte b = 1;
      
      b += 2; //不会报错,底层内含( byte )强转
      b ++; //不会报错,同上内含强转
      b = b + 2; //报错,计算后成 int,不能直接返回给 byte
      

三元运算符

  • 条件表达式 ? 表达式1 :表达式2
    • —— 条件表达式为 true 时,返回的是表达式1
int a = 10, b = 99;
int result = a > b ? a++ : b++;
// 输出为99,因为 b 值先返回,然后再减一,注意 ++ 在后,但直接输出 b 值的话就是100
  • 表达式 1 与表达式 2 要为可以赋值给接收变量的类型,可以自行强转或者自动转换,但注意不会自动强制转换
  • 本质就是 if -- else
  • 可嵌套,但一般不用

运算符优先级

只有单目运算符(例如 a++ 对自身运算的)、赋值运算符是从右向左运算的

优先级从上到下依次降低
.() {} ; , (高)
R —> L ++ -- ~ !(data type) 单目
L —> R * / % 算术
L —> R + -
L —> R << >> >>> 位移 位移
L —> R < > <= >= instanceof 比较
L —> R == !=
L —> R & 逻辑
L —> R ^
L —> R |
L —> R &&
L —> R ||
L —> R ? : 三元
R —> L = *= /= %= 赋值
R —> L += -= <<= >>=
R —> L >>>= &= ^= |= (低)

标识符

  • 标识符就是 Java 对各种变量、方法、类等命名时使用的字符序列

  • 凡是自己可以起名字的地方都叫标识符,如:main

  • 标识符的命名规则

    1. 26 英文字母大小写,0 ~ 9,_ 或 $ 组成

    2. 数字不可以开头

    3. 不可以使用关键字 ( class ) 和保留字 ( goto ) ,但能包含关键字和保留字

      ( 保留字,现有 Java 版本尚未使用,但以后版本可能会作为关键字使用 )

    4. Java 中严格区分大小写,长度无限制

    5. 不能包含空格

  • 标识符命名规范

    1. 包名:多单词时字母全小写
    2. 类名、接口名:多单词时每个单词首字母大写( 大驼峰 )
    3. 变量名、方法名:多单词时,第一个单词首字母小写,第二个单词开始首字母大写( 小驼峰,驼峰法 )
    4. 常量名:所有字母大写,多单词用下划线连接
    5. 都尽量用简单单词命名

键盘输入

  • 接收用户输入数据,需要一个扫描(对象),就是 Scanner

    1. 导入该类的所在包,java.util.*

      import java.util.Scanner;
      
    2. 创建该类对象( 声明变量 )

      Scanner scanner = new Scanner(System.in);
      
    3. 调用里面的功能,使用相关方法

      String name = scanner.next();
      int age = scanner.nextInt();
      double sal = scanner.nextDouble();
       //接收键盘的输入
      

标签:单词,Java,++,运算符,int,标识符,Day,赋值
From: https://www.cnblogs.com/zhu-ya-zhu/p/17284585.html

相关文章

  • 1006-HBase操作实战(JAVA API模式)
    一、准备阶段开发环境:hadoop: hadoop -2.4.0hbase: hbase -0.94.11-securityeclipse:JunoServiceRelease2二、创建 hbasedemo项目1、通过Eclipse创建一个新Java工程2、右击项目根目录,选择“Propertiesà>JavaBuildPathà>Libraryà> Add Ext......
  • day02-搭建微服务基础环境01
    搭建微服务基础环境011.创建父工程,用于聚合其他微服务模块1.1创建父项目说明:我们先创建一个父项目,该父项目会去管理多个微服务模块(module),如下:(1)File-New-Project-Maven,选择如下:(2)输入项目名称等信息,然后next(3)选择Maven,然后Finish1.2项目设置(1)File-Settings-Editor-File......
  • Flask快速入门day02(1、CBV使用及源码分析,2、模板用法,3、请求与响应的基本用法,4、sessi
    目录Flask框架一、CBV分析1、CBV编写视图类方法二、CBV源码分析1、CBV源码问题2、补充问题3、总结三、模板1、py文件2、html页面四、请求与响应1、request常用方法2、response常用方法五、session及源码分析1、session的基本使用2、session源码分析六、闪现七、请求扩展Flask框......
  • flask-day2——cbv源码分析、模版语法、请求与响应、session及源码分析、闪现、请求扩
    目录一、cbv源码分析1.1基于类的视图写法1.2源码分析1.3分析源码,查找不传别名的时候为什么函数名会变成别名1.4flask的路由注册使用装饰器,如果写了一个登录认证装饰器,那么应该放在路由装饰器上还是下?1.5dispatch_request讲解1.6知识点总结二、模板语法2.1py2.2html三、请......
  • 如何使用Java程序实现二叉数
    二叉树是一种重要的数据结构,它由一组节点组成,每个节点可以拥有最多两个子节点。使用Java可以很容易地实现一个二叉树。下面将介绍如何使用Java实现二叉树。二叉树的节点定义一个二叉树的节点可以定义为一个类,其中至少需要包含以下属性:节点值左子节点右子节点在Java中,我们......
  • Java多线程
    1.可见性、原子性和有序性问题多线程有三大特性,分别是可见性、原子性和有序性。1.1可见性  在单核时代,所有的线程都是在一颗CPU上执行,CPU缓存与内存的数据一致性容易解决。因为所有线程都是操作同一个CPU的缓存,一个线程对缓存的写,对另外一个线程来说一定是可见的。一个线程......
  • C语言再学习 -- 运算符与表达式
    分三部分来讲一、左值与右值参看:左值与右值首先我们需要理解左值和右值的定义:左值指的是如果一个表达式可以引用到某一个对象,并且这个对象是一块内存空间且可以被检查和存储,那么这个表达式就可以做为一个左值。      右值指的是引用了一个存储在某个内存地址里的数据。从上面......
  • 为什么 Python、Go 和 Rust 都不支持三元运算符?
    在编程时,我们经常要作条件判断,并根据条件的结果选择执行不同的语句块。在许多编程语言中,最常见的写法是三元运算符,但是,Python并不支持三元运算符,无独有偶,两个最热门的新兴语言Go和Rust也不支持!为什么Python不支持三元运算符呢?本文将主要分析Python在设计条件选择语法时......
  • Java判断文件夹、文件是否存在,不存在则新建
    Java判断文件夹、文件是否存在,不存在则新建原文链接:https://blog.csdn.net/asfsdgdfgdf/article/details/1283162781、Java判断是否存在文件夹,不存在则新建Filefile=newFile("D:/test/filetest/test.txt");if(!file.getParentFile().exists()){file.getParentFile().......
  • Java 获取当前或调用者类名和方法名(Thread.currentThread().getStackTrace()、new Thr
    Java获取当前或调用者类名和方法名(Thread.currentThread().getStackTrace()、newThrowable().getStackTrace())原文链接:https://blog.csdn.net/inthat/article/details/111885544文章目录一、Java获取当前类名和方法名Thread.currentThread().getStackTrace()1.关于Thr......