欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Day02_变量、数据类型、运算符、类型转换、控制台输入

程序员文章站 2022-04-01 18:50:04
一. 变量变量组成:数据类型, 变量名, 值变量定义流程:​声明://开辟整数变量空间​数据类型 变量名;int money;​赋值://将整数值赋给变量​变量名 = 值;money = 100;​应用://System.out.print(money);【注】:Java是强类型语言,变量的类型必须与数据的类型一致。定义变量的三种方式:先声明,再赋值int money;money = 100;声明并赋值int money =...

一. 变量

变量组成:

数据类型, 变量名, 值

变量定义流程:

声明: //开辟整数变量空间

​ 数据类型 变量名;

int money;

赋值: //将整数值赋给变量

​ 变量名 = 值;

money = 100;

应用: //

System.out.print(money);

【注】: Java是强类型语言,变量的类型必须与数据的类型一致。

定义变量的三种方式:

  1. 先声明,再赋值
int money;
money = 100;
  1. 声明并赋值
int money = 100;
  1. 多个同类型变量声明与赋值
int a, b, c = 1, d = 2,  e;

二. 数据类型

Java 中的变量具有严格的数据类型区分。

Java 语言中,任何一个值,都有其对应类型的变量

Java 中的数据类型:

基本数据类型:

​ 整型,浮点型,布尔型,字符

引用数据类型:

​ 字符串,数组,对象

基本数据类型:

整型:

类型 | 字节 | 取值范围 | 取值范围

byte |1字节 |- 2^ 7 ~2^ 7-1 | -128 ~127

short |2字节 |- 2^15 ~2^15-1 | -32768 ~32767

int |4字节 |- 2^31~ 2^31-1 | -21亿 ~21亿

long |8字节 |- 2^63 ~2^63-1 | -922亿亿 ~922亿亿

【注】: 整数默认为int 整型, 如需要为long型,需在值得后面追加 “L”。

浮点型:

类型 | 字节 | 负数范围 | 正数范围

float |4字节 |-3.4E+38 ~-1.4E-45 |1.4E-45 ~3.4E+38

double |8字节 |-1.7E+308 ~-4.9E-324 |4.9E-324 ~1.7E+308

【注】: 如:2E3 等价于2*10^3

【注】: 浮点数默认为double型, 如需要为float型,需在值得后面追加 “F”。

类型 | 字节 | 取值范围

boolean |1字节 | true/ false

【注】: Java 中的boolean 不能参与算数运算

字符
前置知识:
ASCII:

​ 美国信息交换标准码 (American Standard Code for Information Interchange)

​ 0 ~9: 30 H ~39 H

​ A ~Z: 41 H ~5A H

​ a ~z: 61 H ~7A H

Unicode:

​ Unicode(统一码、万国码、单一码)是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。

​ Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。UTF-8UTF-16UTF-32都是将数字转换到程序数据的编码方案。

类型 | 字节 | 取值范围 | 字符编码

char |2字节 | 0~65535 | Unicode编码

字符赋值:

char c1 =  'a';

整数赋值:

char c2 = 65;

进制赋值:

char c3 = '\u0041';
转义字符

\n 换行

\t 缩进(制表位Tab)

\\ 反斜杠

\'单引号

\" 双引号

引用数据类型:

字符串

类型 | 取值范围 | 字符编码

String | " " 之间的值 | Unicode字符集

String str1 = "Hello";

String str2 =  "你好";

类型转换:

自动类型转换:

  1. 两种类型相互兼容
  2. 目标类型大于源类型
byte b = 100;
int i = b;
System.out.println(i);

强制类型转换:

  1. 两种类型相互兼容
  2. 目标类型小于源类型,
int i = 100;
byte b = (byte) i;
System.out.println(b);

规则:

  • boolean的取值不可与其他类型转换

三. 运算符

算术运算符:

+, -, *, /, %

【单目】++, –

【注】: 自增/自减运算时应注意是前缀还是后缀。

​ 前缀:先自增/减,再运算

​ 后缀:先运算,再自增/减

int j = 1;
System.out.println(j++ + ++j + j++);
// 1 + 3 + 3
// 结果为 7
System.out.println(j);
// j == 4

赋值运算符:

=

+=, -=, *=, /=, %=

关系运算符:

!=, ==, >, >=, <, <=

【注】: 返回布尔量

int a = 10;
int b = 4;
System.out.println(a > b);			// true
System.out.println(a < b);
System.out.println(a != b);
System.out.println(a == b);
System.out.println(a == b == false); // true
System.out.println(false == false);  // true

逻辑运算符:

&&, || , !

与: 全真为真

或: 全假为假

非: 取反

【注】:对两个布尔量运算,返回布尔量

【注】:有短路求值的特点

​ a && b,表达式a 为假时,不会对表达式b进行运算(表达式b中有非法操作也可)

​ a || b,表达式a为真时,不会对表达式b进行运算

boolean a = true;
int b = 4;
	
System.out.println(a == false && b / 0 == 1);	  // false
System.out.println(a == true || b / 0 == 1);	  // true

三目运算符:

? :

格式:

​ 布尔表达式 ? 值1 : 值2

语义:

​ 布尔表达式为true, 返回值1;否则返回值2 。

【注】: 常用来传递参数

int a = 1;
String result1 = a == 2 ? "等于2" : "不等于2";
System.out.println(result1);		// 不等于2
a++;
String result2 = a == 2 ? "等于2" : "不等于2";
System.out.println(result2);		// 等于2
int a = 1;
int b = 1;
int c;

c = a == 2 ? 2 : b == 1 ? 1 : 3;
System.out.println(b);			// 1

【注】: 右结合性,也具备短路求值特点

int a = 1, b = 2;
int c = 3, d = 4;
int m = 8 > 7 ? a : b == 2 ? ++c : d;
System.out.println(c);		// 3
System.out.println(m);		// 1
int a = 1, b = 2;
int c = 3, d = 4;
int m = 8 < 7 ? a : b == 2 ? ++c : d;
System.out.println(c);		// 4
System.out.println(m);		// 4

四. 类型提升

进行算术运算时:

  1. 两个操作数有一个为double,计算结果提升为double
  2. 如果操作数中没有double,有一个为float,计算结果提升为float
  3. 如果操作数中没有float, 有一个为long,计算结果提升为long
  4. 如果操作数中没有long,有一个为int,计算结果提升为int
  5. 如果操作数中没有int,均为short或byte,计算结果仍旧提升为int

特殊:

  • 任何类型与 String 拼接(+),其结果自动提升为String

五. 控制台输入

程序运行中,可在控制台手动录入数据,再让程序继续运行。

导包语法:

​ import 包名.类名;

使用顺序:

​ 导入 java.util.Scanner

import java.util.Scanner;

​ 声明 Scanner 类型的变量

Scanner input = new Scanner(System.in);

​ 使用 Scanner类中对应的方法

​ .nextInt(); // 获得整数

​ .nextDouble(); // 获得小数

​ .next(); // 获得字符串

​ .next().charAt(0); // 获得单个字符

【注】: 如果输入流不匹配的数据,则会抛出异常

java.util.InputMismatchException

本文地址:https://blog.csdn.net/qq_41612797/article/details/107674422