一、变量的概念
1.1 变量的基本概念
- 电脑使用内存来记忆计算时所使用的数据;
- 在程序运行期间其值可以改变的量称为变量;
- 变量必须先定义后使用。定义变量时,系统依据变量定义的类型,给变量开辟对应大小的存储单元来存放数据。
1.2 尝试定义一个变量并输出:
public class T1 { public static void main(String[] args) { //定义一个变量 //Java保存证书的类型 int int num = 5; System.out.println(num); } }输出结果:
1.3 案例一:电影票
已知一位小朋友的电影票价是15元,计算20位小朋友的总票价是多少?
public class T2 { public static void main(String[] args) { //电影票 //已知单张票价和总人数 //总金额=单张票价*总人数 int price=15; int num=20; int money=price*num; System.out.println("总金额"+money+"元"); } }输出结果:
1.4 变量三要素
- 类型:决定了占用空间的大小
- 名称:如何提取数据
- 变量值:可以改变的
1.5 变量命名规则
- 标识符不能和系统里的关键字同名;
- 标识符只能包括字母、数字和下划线"_",并且开头只能是字母或下划线;
- 标识符必须先定义,后使用;
- 在同一作用域内,标识符不能重复定义;
- 标识符是区分大小写的,如sum和Sum是不同的标识符;
- 标识符要尽量做到“知名见义”,增强程序的可读性。
二、Java中常用数据类型
| 数据类型 | 案例 |
|---|---|
| int(整型) | 用于存储整数,如:-1000、0、10000 |
| double(双精度) | 用于存储小数,如:1.2、2.5 |
| char(字符型) | 用于存储单个字符,如:’a‘、’1‘ |
| string(字符串) | 用于存储一串字符,如:“Java编程”,“Hello World!” |
2.1 常量
- 在程序运行过程中,其值不能改变的量;
- final double PI =3.14;
- 优点:比较安全,后续代码不允许更改其值
public class T3 { public static void main(String[] args) { //常量,其值不可以改变的量 final double PI = 3.14; //如果常量一旦定义,后续谁也没有权限更改值 System.out.println(PI); } }输出结果:
- 注意事项:
- 常量通常大写
- 只能被赋值一次,通常定义时即对其进行初始化
2.2 练习:
使用变量存储以下电脑信息,并打印输出:
- 品牌(brand):华为MateBook14s
- 尺寸(size):14.2
- 内存(ram):16
- 价格(price):6899
public class T4 { public static void main(String[] args) { //电脑信息登记 //品牌、尺寸、内存、价格 String brand = "华为MateBook14s"; double size = 14.2; int ram = 16; int price = 6899; System.out.println("品牌:"+brand); System.out.println("尺寸:"+size); System.out.println("内存:"+ram); System.out.println("价格:"+price); } }输出结果:
三、运算符的分类和使用
3.1 算术运算符
| 数学符号 | Java中的运算符 |
| + | + |
| - | - |
| × | * |
| ÷ | / |
| 取余数 | % |
3.2 赋值运算符
a = 880;表示把880赋值给a。
b = 300;表示把300赋值给b。
c = a * b;表示把 a * b 的积赋值给c。
P.S.:赋值语句的作用,就是把赋值号右边的值(或表达式的值)赋值给左边的变量。
3.3 练习
int num1 = 5; int num2 = 2; int a = num1 % num2; int b = num1 / num2; System.out.println(num1 + "%" + num2 + "=" + a); System.out.println(num1 + "/" + num2 + "=" + b);输出结果:
3.4 自增、自减运算符
//自增运算符 int num = 2; num++; System.out.println(num);//自减运算符 int num = 2; num--; System.out.println(num);public class T6 { public static void main(String[] args) { //++在前:先让变量的值+1,然后参与原酸(对于println来说,就是打印到屏幕上)。 int num = 2; System.out.println(++num); } }结果为:3
public class T6 { public static void main(String[] args) { //++在后:先取出变量的值参与运算,然后再让变量的值+1。 int num = 2; System.out.println(num++); } }结果为:2
3.5 练习
已知圆的半径为1.5,求圆的周长和面积。
提示:dobule pi = 3.14; //圆周率
代码:
public class T7 { public static void main(String[] args) { //求圆的周长和圆的面积 double r = 1.5; final double PI = 3.14; double cir_circum = 2 * PI * r; double cir_area = PI * r * r; System.out.println("圆的周长为:"+cir_circum); System.out.println("圆的面积为:"+cir_area); } }输出结果:
四、类型转换
4.1 自动转换类型
- 自动转换类型
- 类型相容
- 目标类型 > 源类型
- 例如:
public class T8 { public static void main(String[] args) { //类型转换 //自动类型转换 double num1 = 1.2; int num2 = 2; double result = num1 + num2; System.out.println(result); } }输出结果:
4.2 强制转换类型
- 强制转换类型
- (类型名)表达式
- 例如:
- double a = 5.2;
- int b = (int)a;
public class T9 { public static void main(String[] args) { //类型转换 //强制转换类型 double num = 5.2; int num2 = (int)num; System.out.println(num2); } }输出结果:
4.3 练习
小明准备实现一个数字加密器,加密规则是
加密结果 = (整数*8+3)/2+2.6
加密结果仍为一个整数
public class T10 { public static void main(String[] args) { int num = 5; int result = (int)((num * 8 + 3)/2 + 2.6); System.out.println(result); } }输出结果:
五、Scanner类接收用户输入
Scanner input = new Scanner(System.in); int num = input.nextInt();例如:
import java.util.Scanner; public class T11 { public static void main(String[] args) { //接收用户输入 Scanner input = new Scanner(System.in); int num = input.nextInt(); System.out.println("您输入的数字为:"+num); } }输出结果:
P.S.:第一次输入代码的时候报错,报错结果是:
原因是需要先调用包,即在输入代码之前,需要先输入:
import java.util.Scanner;六、练习题
6.1 练习一
已知某班有男同学20位,女同学15位,20位男生平均分是87分,15位女生的平均分是85,问全体同学平均分是多少分?
public class T12 { public static void main(String[] args) { //求全班同学的平均分 int count_boy = 20; int count_girl = 15; int avg_boy = 87; int avg_girl = 85; double sum = count_boy * avg_boy + count_girl * avg_girl; double result = sum / (count_boy + count_girl); System.out.println("全班同学的平均分为:"+result); } }public class T12 { public static void main(String[] args) { //求全班同学的平均分 int count_boy = 20; int count_girl = 15; int avg_boy = 87; int avg_girl = 85; double sum = count_boy * avg_boy + count_girl * avg_girl; double result = sum / (count_boy + count_girl); String result_xiaoshu = String.format("%.2f",result); System.out.println("全班同学的平均分为:"+result_xiaoshu); } }6.2 练习二
格莱尔买来30根骨头,第一天吃掉一半后又吃了一根,第二天将剩下的骨头吃了一半后,又吃了一根,第三天仍然如此,第三天吃完后还剩下多少根骨头?
public class T13 { public static void main(String[] args) { //第三天剩下的骨头数量 int pri = 30; int day1 = pri / 2 - 1; int day2 = day1 / 2 - 1; int day3 = day2 / 2 - 1; System.out.println("第三天剩下的骨头数量:"+day3); } }6.3 练习三
对一个三位数123分离数位
public class T14 { public static void main(String[] args) { //分离各个分位上的数字 int num = 123; int hun = num / 100; int ten = (num - hun * 100)/ 10; int one = (num - hun * 100 - ten * 10); System.out.println("百分位上的数字为:" + hun); System.out.println("十分位上的数字为:" + ten); System.out.println("个位上的数字为:" + one); } }6.4 练习四
交换两个变量的值:输入两个整型变量a,b,交换他们的值,并输出交换的结果
public class T15 { public static void main(String[] args) { //交换变量 int a = 3; int b = 5; System.out.println("交换前a和b的值分别为:"+a+" "+b); int c = a; a = b; b = c; System.out.println("交换后a和b的值分别为:"+a+" "+b); } }6.5 练习五
一个三位数,百位上的数比十位上的数大1,个位上的数是百位上的数的2倍,若十位上的数为3,这个三位数是多少?
public class T16 { public static void main(String[] args) { //按要求输出三位数 int ten = 3; int hun = ten + 1; int one = hun * 2; int result = one + ten * 10 + hun * 100; System.out.println("这个三位数是:"+result); } }6.6 练习六
输入一个小写字母,输入其对应的大写字母。例如输入q时,会输出Q。
import java.util.Scanner; public class T17 { public static void main(String[] args) { //将小写字母转换成大写字母 Scanner scanner = new Scanner(System.in); System.out.println("请输入一个字母:"); String input = scanner.nextLine(); String upper = input.toUpperCase(); System.out.println("转换结果:" + upper); scanner.close(); } }