2.2 数据类型
数据类型说明:
数据类型 说 明
char
(字符型) 用于存储单个字符
如:性别‘男’、‘女’,电灯‘开’、‘关’
int
(整型) 用于存储整数
如:一天的时间是24小时,一月份有31天
double
(双精度) 用于存储小数
如:蒙牛早餐奶的价格1.3元,手机待机时间6.5小时
String
(字符串) 用于存储一串字符
如:“我的爱好是踢足球”,“我喜欢Java程序”
2.3 变量
2.3.1 为什么要有变量
电脑使用内存来记忆计算时所使用的数据,内存如何存储数据?
内存好比旅馆,使用内存就好比在旅馆订一个房间:
1、开房间(单人间、双人间、总统套间)
2、入住
数据类型就好比旅馆中房间的类型,
数据各式各样,要先根据数据的需求(即数据类型)为它申请一块合适的空间
在银行存1000元钱,银行一年的利息5%,那一年之后钱变成了多少?
已经将数据存入内存,但是: 怎么找到存入的数据?
可以通过内存中房间的别名找到数据存储的位置,即通过变量名可以简单快速地找到它存储的数据。
2.3.2 使用变量的步骤
第一步:声明变量,即“根据数据类型在内存申请空间”
第二步:赋值,即“将数据存储至对应的内存空间”
第一步和第二步可以合并:
第三步:使用变量,即“取出数据使用 ”
2.3.3 变量命名规则
Java语言中,变量命名要符合一定规则。简短且能清楚地表明变量的作用,通常第一个单词的首字母小写,其后单词的首字母大写。例如:myScore。
实际开发时,为了易于维护,尽量使用有意义的变量名。
检查变量名:
不同类型的变量存取:
public static void main(String[ ] args) {
double score = 98.5;
String name = “张三”;
char sex = ‘男’;
System.out.println("本次考试成绩最高分: " + score);
System.out.println("最高分得主: " + name);
System.out.println("性别: " + sex);
}
2.4 运算符
语法:
变量名=表达式;
例如:
a=( b+3)+(b–1)
表达式就是符号(如加号、减号)与操作数(如b,3等)的组合。
2.4.1 算术运算符
基本的算术运算:
-
-
- /
-
例如,从控制台输入学员王浩3门课程成绩,编写程序实现
(1)Java课和SQL课的分数之差
(2)3门课的平均分
实现代码如下:
import java.util.Scanner;
public class ScoreStat {
/*
* 成绩统计
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("STB的成绩是:");
int stb = input.nextInt(); //STB分数
System.out.print("Java的成绩是:");
int java = input.nextInt(); //Java分数
System.out.print("SQL的成绩是:");
int sql = input.nextInt(); //SQL分数
int diffen; //分数差
double avg; //平均分
System.out.println("-----------------------");
System.out.println("STB\tJava\tSQL");
System.out.println(stb + "\t" + java + "\t" + sql);
System.out.println("-----------------------");
diffen = java - sql; //计算Java课和SQL课的成绩差
System.out.println("Java和SQL的成绩差:" + diffen);
avg = (stb + java + sql) / 3; //计算平均分
System.out.println("3门课的平均分是: " + avg);
}
}
2.4.2 关系运算符
为什么使用关系运算符?
比较高低、大小、长短等:
张三的考试成绩是否比李四高
大象是否比乌龟更长寿
篮球跟地球一样大吗
常用的关系运算符有哪些?
,<
==,!=
=,<=
关系运算符的比较结果使用boolean类型。boolean类型一共有两个值:
真:true
假:false
例如,控制台输入张三的成绩,与李四的成绩进行比较,输出比较结果:
import java.util.Scanner;
public class BoolTest {
public static void main(String[] args) {
int liSi = 80; //学员李四成绩
boolean isBig ; //声明一个boolean类型的变量
Scanner input = new Scanner(System.in); //Java输入的一种方法
System.out.print("输入学员张三成绩: "); //提示要输入学员张三的成绩
int zhangSan = input.nextInt(); //输入张三的成绩
isBig = zhangSan > liSi ; //将比较结果保存在boolean变量中
System.out.println( "张三成绩比李四高吗 ? "+isBig );//输出比较结果
}
}
2.4.3 案例:打印购物小票并计算积分
需求说明:
结算时打印购物小票
计算此次购物获得的会员积分
积分计算规则:每消费100元计3积分。
实现代码如下:
public class Pay {
/*
* 购物结算、打印小票并计算积分
*/
public static void main(String[] args) {
int shirtPrice = 245; //T恤价格
int shoePrice = 570; //网球鞋价格
int padPrice = 320; //网球拍价格
int shirtNo=2; //T恤件数
int shoeNo =1; //运动鞋数目
int padNo = 1; //网球拍数目
double discount = 0.8;
/*计算消费总金额*/
double finalPay = (shirtPrice * shirtNo + shoePrice * shoeNo + padPrice * padNo) * discount;
//System.out.println("消费总金额:" + finalPay);
/*计算找钱*/
double returnMoney = 1500-finalPay;
/*打印购物小票*/
System.out.println("********消费单********");
System.out.println("购买物品\t" + "单价\t" + "个数\t"+ "金额\t");
System.out.println("T恤\t" + "¥"+shirtPrice+ "\t" + shirtNo+ "\t" + "¥"+(shirtPrice * shirtNo)+"\t");
System.out.println("网球鞋\t" + "¥"+shoePrice + "\t"+ shoeNo+ "\t" + "¥"+(shoePrice * shoeNo)+ "\t");
System.out.println("网球拍\t" + "¥"+padPrice + "\t"+ padNo+ "\t" + "¥"+(padPrice * padNo)+ "\t\n");
System.out.println("折扣:\t8折");
System.out.println("消费总金额\t" + "¥" + finalPay);
System.out.println("实际交费\t¥1500");
System.out.println("找钱\t" + "¥" + returnMoney);
/*计算本次购物所获积分*/
int score = (int)finalPay / 100 * 3; //强制类型转换
System.out.println("本次购物所获的积分是: " + score);
}
}