public class variableDemo2 {
public static void main(String[] args){
int attack1 = 220;
int attack2 = 210;
int denfense1 = 85;
int denfense2 = 80;
double blood1 = 1012.5;
double blood2 = 1223.3;
double skill1 = 1.2;
double skill2 = 1.3;
//问题一我方进行一次普通攻击,造成多少伤害,对方还剩多少血量?
double damage1 = attack1 - denfense2;
blood2 = blood2 - damage1;
System.out.println( " 我造成伤害: " +damage1);
System.out.println( " 对方还剩 " +blood2);
//问题二:我进行技能攻击,造成多少伤害,对方还剩多少血量?
double damage2 = attack1 * skill1 - denfense2;
blood2 = blood2 - damage2;
System.out.println( " 我造成伤害: " +damage2);
System.out.println( " 对方还剩 " +blood2);
}
}
**总结:1变量定义时要取有含义的名字,方便后面维护
2下面是我的一个错误写法,犯的错误是变量重复声明,貌似没啥问题,需要注意。在同一作用域中,变量可以多次赋值,声明只能一次。**
double blood2 = blood2 - damage1;
3变量使用场景:某个数据的值经常改变
变量的一些注意事项:
1变量只能存一个值
2变量名不能重复
3变量使用前一定要赋值
4一条语句可以连续定义或赋值多个变量例如int a,b,c//a=b=c=10
计算机的存储规则:
1计算机中任何数据都是以二进制的形式存储的
2字节是计算机中的最小存储单元,1字节(B)=8比特(bit)
3在java中,int类型的大小是4B/32b
基本数据类型
byte b = 127;//1B
short s = 32767;//2B
int i = 2147483647;//4B
long l = 9223372036854775807L;//8B
注意:long类型数据后面一定要有L后缀
float f = 3.14f;//4B
注意:float类型数据后面一定要有f后缀
double d = 3.14;//8B
char c = 'a' ;//2B
boolean bool = true;//1B
整数、小数取值范围大小关系
Double>float>long>int>short>byte
标识符(代码中起的名字,例如类名、变量名、方法名等)
命名规范(强制): 1由字母、数字、下划线_、美元符$组成
2区分大小写
3不能以数字开头
4不能是关键字
(非强制)见名知意,驼峰命名
小驼峰(方法、变量): 1一个单词 全部小写
2多个单词 第一个单词全部小写,其余单词首字母大写
大驼峰(类名): 1一个单词 首字母大写
2多个单词 所有单词首字母大写
键盘输入代码
import java.util.Scanner;
public static void main(String[] args) {
//键盘录入
Scanner sr = new Scanner(System.in);
//输入整数
int num1 = sr.nextInt();
System.out.println(num1);
//输入小数
double num2 = sr.nextDouble();
System.out.println(num2);
//输入字符(字符串)
String str = sr.next();
System.out.println(str);
}
//键盘录入两个整数,求和
public static void main(String[] args) {
Scanner sr = new Scanner(System.in);
System.out.println( " 请输入第一个整数 " );
int num1 = sr.nextInt();
System.out.println( " 请输入第二个整数 " );
int num2 = sr.nextInt();
int result = num1 + num2;
System.out.println( " 两个整数的和是: " + result);
}
//输入体重和身高,计算BMI
public static void main(String[] args) {
Scanner sr = new Scanner(System.in);
System.out.println( " 请输入您的体重 " );
double weight = sr.nextDouble();
System.out.println( " 请输入您的身高 " );
double height = sr.nextDouble();
double bmi = weight / ( height * height );
System.out.println( " 您的 BMI 是 " +bmi);
}
算术运算符
+加 -减 *乘 /除(取商) %取余
注意:整数除法结果还是整数
小数(浮点数)直接参与运算,以上运算符的运算结果可能不精确!!!
//键盘录入一个整数,求个位、十位、百位
public static void main(String[] args) {
//
Scanner sr = new Scanner(System.in);
System.out.println( " 请输入一个整数 " );
int num = sr.nextInt();
// System.out.println(num);
int no1 = num % 10;
System.out.println( " 个位数是: " +no1);
//获取个位
int no2 = num / 10 % 10 ;
System.out.println( " 十位数是: " +no2);
//获取十位
int no3 = num / 100 % 10;
System.out.println( " 百位数是: " +no3);
//获取百位
}
获取一个数的各个位置上的数公式
个位:数值%10
十位:数值/10%10
百位:数值/100%10
千位:数值/1000%10
//输入一个秒数,输出时分秒
public static void main(String[] args) {
Scanner sr = new Scanner(System.in);
System.out.println( " 请输入一个秒数 " );
int sec = sr.nextInt();3412
int hour = sec / 3600;
int min = sec % 3600 / 60 ;
int sec1 = sec % 3600 % 60;
System.out.println(hour+ " " +min+ " " +sec1);
}
数字运算中类型转换
类型不一样不能转换,要转换成相同类型才能运算
byte<short<int<long<float<double
小----->大:
1隐式转换(前面补0)
触发时机:不同数据类型计算时,默认采用隐式转换,java自动转换,无需写代码
步骤1低于int大小的先转换为int类型2把范围小的先转换为范围大的再进行运算。
大----->小
2强制转换(去掉不要的)
弊端:可能导致精度丢失
触发时机:手动书写代码触发
书写格式:目标数据类型 变量名 = (目标数据类型) 被强转的数据;
int a = 10;
Byte b = (byte) a;