常量、Scanner类、基本数据类型转换、算数运算符

变量和常量

常量

1.使用final关键字修饰,只能赋值一次,不可以修改值。

2.常量的名称使用全大写。

3.多个单词使用下划线分隔。

public class Demo01 {

	public static void main(String[] args) {

		// 创建变量
int a = 12;
a = 18;
System.out.println(a); int c;
c = 12;
System.out.println(c); // 创建常量
final int b = 12;
//b = 18;
System.out.println(b); final int d;
d = 12;
System.out.println(d); // 使用常量表示一些固定的值
final double PI = 3.14159265758;
System.out.println(PI); final int STUDENT_COUNT = 50; }

步骤1:需求

在console输入文本,回车确认,程序读取到我出入的文本内容。

步骤2:实现

1、用谁

java中的Scanner类可以用于扫描文本。

2、怎么用

Scanner类有多个构造方法,用来创建它的实例(对象),实例可以用来完成我们的需求。

Scanner(InputStream source) 构造一个新的 Scanner实例 ,用于扫描指定的输入流。

3、输入流从哪来

控制台输出:System.out.print("")

控制台输入:System.in

示例代码

public class Demo02 {

	public static void main(String[] args) {

		// 1.创建Scanner类的实例对象,指定输入流为控制台输入
Scanner sc = new Scanner(System.in); // 2.使用Scanner的实例对象获取控制台输入文本 // 获取字符串
System.out.println("请输入一个字符串:");
String str = sc.next();
System.out.println("你输入的内容是:" + str); // 获取整数
System.out.println("请输入一个整数:");
int i = sc.nextInt(); // 如果输入的不是整数,抛出java.util.InputMismatchException异常
System.out.println("你输入的整数是:" + i); // 获取浮点数
System.out.println("请输入一个浮点数:");
double d = sc.nextDouble();
System.out.println("你输入的浮点数是:" + d); // 3.关闭资源
sc.close(); }

基本数据类型的转换

自动类型转换

byte -> short -> int -> long -> float -> double

char <-> int 注意取值区间是0~65535

按照数据大小和精度从小到大

强制类型转换

需要用到显式的强转声明:例如int d = (int)c;

数据类型的转换,主要考虑的问题是精度问题。

示例代码

public class Demo03 {

	public static void main(String[] args) {

		int a = 12;

		// 整型转为浮点型,精度变大,可以自动转换。
double b = a; System.out.println(b); double c = 18.9; // 浮点型转为整型,精度变小,不可自动转换,可以强制转换。
// 如果有小数位,小数位会直接丢失。
int d = (int)c; System.out.println(d); // int -> char 自动类型转换
char c1 = 65;
char c2 = '女'; char c3 = 65535;
System.out.println(c3); // char -> int 自动类型转换
int i1 = c2;
System.out.println(i1); }

例题1:实现两个变量数据交换

public class Demo04 {

	public static void main(String[] args) {

		int a = 18;
int b = 20;
System.out.println("a=" + a + ";b=" + b); // 增加一个中间变量实现交换
int c = a;
a = b;
b = c;
System.out.println("a=" + a + ";b=" + b); // 不增加变量实现交换
// a = 20; b = 18
a = a + b; // a = 38; b = 18
b = a - b; // a = 38; b = 20
a = a - b; // a = 18; b = 20
System.out.println("a=" + a + ";b=" + b); }

算术运算符

基本算术运算符

+ - * / % ++ --
  1. / 如果是两个整数进行运算,默认取整;如果有一个是小数,进行除法运算保留小数位。

  2. % 取余数

  3. ++ 自加:i++ ==> i = i + 1

  4. – 自减:i-- ==> i = i - 1

  5. ++和–可以写在变量的前后,写在前面,先进行++或–运算再进行其他运算;写在后面相反。

复合算术运算符

​ += -= *= /= %= (基本运算符和赋值运算符的整合写法)

public class Demo05 {

	public static void main(String[] args) {

		int a = 1 + 2;

		int b = 1 - 2;

		int c = 1 * 2;

		int d = 1 / 2;
System.out.println(d);
double e = 1 / 2;
System.out.println(e);
double f = 1.0 / 2;
System.out.println(f); int g = 1 % 2; // 1 除 2 得 0 余 1
System.out.println(g); int h = 2;
int h1 = h++; // h1 = h; h = h + 1;
int h2 = h--; // h2 = h; h = h - 1;
System.out.println(h1); // 2
System.out.println(h2); // 3
System.out.println(h); // 2 int i = 2;
i++; // i = 3
int i1 = i; // i1 = 3
i--; // i = 2
int i2 = i; // i2 = 2
System.out.println(i1); // 3
System.out.println(i2); // 2 int j = 2;
int j1 = ++j; // j = j + 1; j1 = j;
int j2 = --j; // j = j - 1; j2 = j;
System.out.println(j1); // 3
System.out.println(j2); // 2 int k = 5;
k += 4; // k = k + 4
System.out.println(k); // 9 //-------------------------------------- double d1 = 10.0 / 3;
System.out.println(d1); //double d2 = 6 / 0; // java.lang.ArithmeticException: / by zero double d3 = 6.0 / 0;
System.out.println(d3); // Infinity int n = 1;
/*
* 1.遇到=,将右边的值存放在缓存区,存放的值是1
* 2.n自加,n=2
* 3.执行赋值,将缓存区值赋值给左边的变量,n=1
*/
n = n++;
System.out.println(n); // 1 int m = 1;
m = ++m;
System.out.println(m); // 2
}

例题2:用户输入4位会员卡号,输出该卡号。

package org.jgs2007.work;

// 1.引入类
import java.util.Scanner; /**
* 用户输入4位会员卡号,输出该卡号。
* @author junki
* @date 2020年6月18日
*/
public class Work01 { public static void main(String[] args) { // 2.创建对象
Scanner sc = new Scanner(System.in); // 3.提示用户输入卡号
System.out.println("请输入四位会员卡号:"); // 4.接收用户输入的卡号
int num = sc.nextInt(); // 5.输出会员卡号
System.out.println("您的卡号是:" + num); // 6.关闭资源
sc.close(); } }

例题3:从控制台接收两个整数,交换输出

package org.jgs2007.work;

import java.util.Scanner;

/**
* 从控制台接收两个整数,交换输出
* @author junki
* @date 2020年6月19日
*/
public class Work02 { public static void main(String[] args) { // 1.创建scanner对象
Scanner sc = new Scanner(System.in); // 2.获取用户输入
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a + "::" + b); // 3.交换两个变量
a = a + b;
b = a - b;
a = a - b;
System.out.println(a + "::" + b); // 4.关闭资源
sc.close(); } }

java_2.常量、Scanner类、基本数据类型转换、算数运算符的更多相关文章

  1. Java基本数据类型转换及运算符

    上次我们说到完了Java中的基本数据类型,今天我们来说说Java中的基本数据类型转换和Java中的运算符 基本数据类型转换 java中可以从任意基本数据类型转型到外的基本数据类型 注意:(boolea ...

  2. java se系列(二) 关键字、注释、常量、进制转换、变量、数据类型转换、运算符

    1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名.方法名.类名.包名. 1.2 常见的关键字 备注 ...

  3. c#基础学习(0627)之类型转换、算数运算符++、--

    类型转换 我们要求等号两边参与运算的操作数的类型必须一致,如果不一致,满足下列条件会发生自动类型转换,或者称之为隐式类型转换 例如:int和double兼容(都是数字类型) 目标类型大于源类型 例如: ...

  4. 【代码笔记】Java常识性基础补充(一)——赋值运算符、逻辑运算符、三元运算符、Scanner类、键盘输入、Random类、随机数

    为什么要进行Java常识性基础补充? 之前学习Java语言,学得很多很杂,而且是很多不同的方面插入讲解的,比如在跟班上课,自学java编程例子,java语法,过了很久,因为各种原因长时间不怎么写,有时 ...

  5. Java的算数运算符、关系运算符、逻辑运算符、位运算符

    JAVA的运算符,分为四类: 算数运算符.关系运算符.逻辑运算符.位运算符 算数运算符(9):+  -  *  /  %  ++  -- 关系运算符(6):==  !=  >  >=  & ...

  6. Java变量和Scanner类

    1.变量的分类1)按数据类型分类   详细说明: 1. 整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)   ① byte范围:-128 ~ ...

  7. 三目运算符与Scanner类

    1.三目运算符(条件运算符)格式:X ? Y : ZX表达式必须是boolean类型 的表达式执行流程:首先计算X表达式的结果,如果X的结果为true,那么整个表达式的结果就是Y的值如果X的结果为tr ...

  8. javascript学习3、数据类型、数据类型转换、运算符

    数据类型包括:基本数据类型和引用数据类型 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值 ...

  9. JavaScript算数运算符和一元运算符

    算数运算符 加法运算符(Addition): x + y 减法运算符(Subtraction): x - y 乘法运算符(Multiplication): x * y 除法运算符(Division): ...

  10. day02_数据类型转换、运算符、方法入门

    day02_数据类型转换.运算符.方法入门 数据类型 基本数据类型 四类八种 整数型 (取值范围) byte(-128~127) short(-32768~32767) int(一般默认)(-21亿~ ...

随机推荐

  1. 即构✖叮咚课堂:行业第一套AI课堂解决方案是怎么被实现的?

    AI走进教育,是传统教育的一次迭代进化 在教育问题上,我们看到两类话题最容易引发公众讨论:教育公平和个性化教育,"互联网+教育"有可能解决第一类话题,"AI教育" ...

  2. Angular报错:Error: Unknown argument: spec

    解决方案 使用--skip-tests代替 效果展示 可以看到spec.ts消失了 参考链接 https://stackoverflow.com/questions/62228834/angular- ...

  3. [golang]简单的文件上传下载

    前言 某次在客户内网传输数据的时候,防火墙拦截了SSH的数据包,导致没法使用scp命令传输文件,tcp协议和http协议也只放开了指定端口,因此想了个用http传输的"曲线救国"方 ...

  4. 行行AI人才直播第15期:【AIGC科技公司法律顾问】Amber《AIGC的法律挑战》

    近年来,AIGC技术的迅速进步为社会经济发展带来了新的机遇.各行各业都开始关注AIGC相关技术在商业落地中的应用,AIGC相关的创业及项目如雨后春笋般涌现.然而,AIGC的广泛应用也带来了一系列的法律 ...

  5. AI绘画关键词Prompt:分享一些质量比较高的StableDiffusion(SD)关键词网站

    今天向大家推荐一些SD(StableDiffusion)高质量的 关键词 网站.这些网站的质量可靠,能为大家在创建 AI 绘画时提供有效的参考.以下是六个推荐的网站,优缺点分析. 有几个质量还算是挺高 ...

  6. 一篇关于获得拼多多商品详情 API的使用说明

    拼多多(Pinduoduo)是中国一家快速发展的电商平台,为了帮助开发者更好地接入拼多多,平台提供了丰富的 API 接口供开发者使用,其中包括获取拼多多商品详情的 API.接下来,我们将介绍如何使用拼 ...

  7. Linq关联两个DataTable合并为一个DataTable

    DataSet ds ; DataTable dt1= ds.Tables[0]; DataTable dt2= ds.Tables[1]; //关联 var res = from m in dt1. ...

  8. CodeForces 1174D Ehab and the Expected XOR Problem

    题意: 给定两个数\(n\)和\(x\),构造一个序列,设为\(a[l]\)(\(l\)不确定) \(1\).\(1\leq a[i]<2^{n}\) \(2\).序列中没有子序列异或和为\(0 ...

  9. 关于前后端交互,取header的尴尬

    背景: 最近在写一个接口的时候,需求是这样的,上传excel,匹配项目有多少个字段匹配上了,如果匹配上了在单元格上标注绿色背景,然后返回excel文件和匹配的详细. 首先这个excel文件,后端是不会 ...

  10. FastDFS入门

    一.系统架构 二.构成部分 1.Tracker Server:跟踪服务器,记录文件信息,可单台或集群部署. 2.Storage Server:存储服务器,文件存储位置,分卷或分组部署. 3.Clien ...