目录
一.变量的概念
-
电脑使用内存来计算所使用的数据。(所有在运行中的数据都保存在内存中)
-
在程序运行期间其值可以改变的量称为变量。(变量可以看成内存上的一块空间)
-
变量必须先定义后使用。(定义变量的目的是为了保存数据)
-
定义变量时,系统根据定义的类型来给变量开辟对应大小的存储单元,使其用来存放数据。(变量类型的不同,决定了在内存中占用空间大小的不同)
-
变量三要素
-
类型(决定了占用空间的大小)
-
名称(如何提取数据)
-
变量值(可以改变的)
-
生活实例
-
案例
-
已知电影的票价为15元,计算10人订票总票价为多少?
public class lian { public static void main(String[] args) { int price = 15; int num = 10; int money = price * num; System.out.println("总金额为" + money + "元"); } }
代码中变量含义 price:价格 num:数量 money:总金额
二.变量命名规范
-
标识符不能和系统里的关键字同名。(标识符=变量名)
-
标识符只能包括字母(a~z\A~Z)、数字和下划线“_”,并且开头只能是字母或下划线。
-
标识符必须先定义后使用。
-
在同一作用域内,标识符不能重复定义。(As:一个班级里的学号)
-
标识符是区分大小写的,ps:sum和Sum是不同的标识符。
-
标识符要尽量做到“见名知义”,增强程序的可读性。(As:学生名字,可以定义成Stuname)
三.Java中常用的数据类型
数据类型 | 案例 |
int (整型) | 用于存储整数 As:-10、0、10 |
double (双精度浮点型) | 用于存储小数 As:1.5、2.3 |
char (字符型) | 用于存储单个字符 As:‘a’、‘3’ |
String (字符串) | 用于存储一串字符 As:“Java编程”、“我爱中国” |
public class lian {
public static void main(String[] args) {
//Java中常用的数据类型
int num = 5;
//双精度浮点数 用于保存小数
double height = 5.55;
//性别
char gender = '男';
//字符串 “”
String name = "小明";
}
}
Ps:" ":空字符串 "a":单个字符的字符串
四.常量的概念
-
在程序运行过程中,其值不能改变的量称为常量。
-
final double PI = 3.14。(final可以使变量变成常量,规则:把常量的所有名称里的字母全部改为大写)
-
优点:比较安全,后续代码不允许更改其值。(常量一旦定义,后续谁也没有能力更改它的值,如果强行更改,则会报错)
public class lian { public static void main(String[] args) { //变量的定义方式 double pi = 3.14; //常量的定义方式 final double PI = 3.14; PI = PI + 1;//PI会报错 System.out.println(PI); } }
-
注意事项
-
常量名通常大写。
-
只能被赋值一次,通常定义时即对其进行初始化。
五.运算符的分类和使用
1.赋值运算符
-
= (变量名 = 表达式)
Ps:赋值语句的作用就是:把赋值号右边的值(或表达式的值)赋值给左边的变量。
2.算术运算符
- +
- -
- *
- /:取整
- %:取余数
数学符号 | + | - | X | ÷ |
Java中的运算符号 | + | - | * | / |
例:
public class lian {
public static void main(String[] args) {
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);
}
}
Ps:在Java中两个整数相除得不到小数,得到的为小数点前的整数,小数点后一律抛弃。
3.自增运算符
int num = 2;
num++;
System.out.println(num);
4.自减运算符
int num = 2;
num--;
System.out.println(num);
Ps: num++:++在后是先取出变量的值参与运算,然后再让变量的值+1。
++num:++在前是先让变量的值+1,然后参与运算 。
public class lian {
public static void main(String[] args) {
int num = 2;
System.out.println(num++);//输出结果为2
System.out.println(++num);//输出结果为4
}
}
练习题
- 已知圆的半径为2.5,求圆的周长和面积(提示:double pi = 3.14)
public class lian {
public static void main(String[] args) {
final double PI =3.14;
double r = 2.5;
double c = 2 * r * PI;
double s = c / 2 * r;
System.out.println("圆的周长为:" + c +"\n" + "圆的面积为:" + s);
}
}
六.类型转换
1.自动类型转换条件
-
类型相容(As:同样是数字,同样是字符等)
-
目标类型>源类型(As:double > int)
-
public class lian { public static void main(String[] args) { double num1 =1.5; int num2 = 2;//int转换为double,把2赋值给double变成2.0 System.out.println(num1+num2);//输出值为3.5 } }
2.强制类型转换
-
类型相容(As:同样是数字,同样是字符等)
-
(类型名)表达式(As:int < double,强制转换一般是因为有特殊的原因)
As:(强制转换可能会造成数据丢失,丢失的数据由程序员负责)
public class lian {
public static void main(String[] args) {
double a = 3.5;
int b = (int)a;
System.out.println(b);//输出结果为3
}
}
练习题
实现一个数字加密器,加密的规则为:
- 加密结果=(整数*5+2)/2+4.7。
- 加密结果仍然要为整数。
import java.util.Scanner;
public class lian {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个数:");
double num = scanner.nextInt();//从屏幕输入一个数
double jia = (num * 5 + 2) / 2 + 4.7;
System.out.println((int)jia);
scanner.close();
}
}
七.Scanner类
- 格式
- 如果接收整数则代码为 : int num = scanner.nextInt();
- 作用:接收用户从键盘输入的内容
练习题
- (一)已知班级有20名男同学,他们的平均分为87,还有15位女同学,她们的平均分为85,求全体同学的平均分是多少?
public class lian {
public static void main(String[] args) {
double ping = 87;
int boy = 20;
int girl = 15;
double ping2 = 85;
double all = (ping - ping2)*boy / (boy + girl) + ping2;//结果为86.14285714285714
String all1 = String.format("%.1f",all);
System.out.println("平均分为:" + all1);//输出86.1
}
}
- (二)对123这个三位数进行数位分离
public class lian {
public static void main(String[] args) {
int num = 123;
int ge = num % 10;//个位
int shi = num / 10 % 10;//十位
int bai =num / 100;//百位
System.out.println("个位为:" + ge);
System.out.println("十位为:" + shi);
System.out.println("百位为:" + bai);
}
}
Ps:思路 把数除以10取余来获得个位;把数除以100取整来获得百位;综上把数除以10取整再除以10取余来获得十位。
- (三)输入两个整型变量a,b,交换他们的值,并输出交换后的结果
public class lian {
public static void main(String[] args) {
int a = 5,b = 9;
System.out.println("交换前:a=" + a +",b="+b);//输出a=5,b=9
//交换代码 黄金三行
int temp = a;
a = b;
b = temp;
System.out.println("交换后:a=" + a +",b="+b);//输出a=9,b=5
}
}
- (四)一个三位数,百位上的数比十位上的数大1,个位上的数是百位上的数的2倍,若十位上的数为3,这个三位数是多少?
public class lian {
public static void main(String[] args) {
int shi = 3;
int bai = shi + 1;
int ge = bai * 2;
System.out.println("这个数是:" + bai + shi + ge);//输出438
}
}
- (五)输入一个小写字母,输出其对应的大写字母。
import java.util.Scanner;
public class lian {
public static void main(String[] args) {
//先从键盘接收一个字符串,然后用charAt()
Scanner input = new Scanner(System.in);//输入lian
char lian = input.next().charAt(0);//下标为0代表取第一个字符
char bigLian = (char)(lian - 32);
System.out.println(bigLian);//输出L
}
}
八.学习笔记
-
int:存放整数类型。
-
Scanner:扫描仪。
-
input.next:接收整个字符串。
-
charAt():接收第几个符号,0是第一个以此类推。
-
String.format:对小数位数进行控制,但是它返回的结果为字符串类型。
-
temp:临时变量。
-
ASCII表:a是97,A是65,因此大小写相差32。
-
不同类型存储空间:char < int <float < double。
-
显式转换:double > float > int > char。(>代表左边的类型往右边的类型转换)
-
隐式转换:char > int > float > double。