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

常量、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;
		
		
		
	}
需求

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

实现
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);
		
		
	}

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

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
	}

示例:用户输入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();
		
		
	}
	
}

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

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();
		
	}
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值