xxx*.java 源码文件(没法直接被jvm运行)
xxx.class 类文件/字节码文件(可以编译运行)
命名规则:
1.项目名全部小写
2.包名全部小写
3.类名首字母大写,组合单词的首字母大写
Hello HelloWorld
4.变量名,方法名首字母小写,如果名称由多个单词组成,除首字母外的每个单词的首字母都得大写
5.常量名全部大写
注:名称只能由字母、数字、下划线组成
不能以数字开头
不能出现java的关键字
基本数据类型:
整型: byte (字节 1 字节)
short (短整型 2字节)
int (整型 4字节)
long (长整型 8字节)
浮点型:float (浮点型 4字节)
double (双精度浮点型 8字节)
布尔类型: true / false
char: (字符类型------可认为是一种特殊的整型) ASCll / Unicode
类型转换:
1.数据类型之间可以赋值
2.数据类型和boolean类型之间、数据类型和引用类型之间无法转换
int a = false 永远不成立!!!
语法:int a = (int)10L
3.转换规则:
double > float > long > int > short > byte
1) long a = 10 天生成立 long -> int
2)int a = 10L 不成立,需要类型转换 int <- long
逻辑控制:
1.顺序结构--------------按代码书写的顺序一行一行执行
System.out.println("1");
System.out.println("3");
System.out.println("2");
2.分支结构
1)if语句
基本形式:if(布尔表达式){
//条件满足时执行代码;
}else{
//条件不满足时执行代码;
}
例如判断闰年
public static void main(String[] args) {
int year = 1000;
if (year % 100 == 0) {
if (year % 400 == 0) {
System.out.println("是世纪闰年");
} else {
System.out.println("是闰年");
}
} else if (year % 4 == 0) {
System.out.println("是闰年");
} else {
System.out.println("不是闰年");
}
}
}
2)switch语句
基本形式:switch(...){
case 1 :
内容满足时执行语句;
break;
case 2 :
内容满足时执行语句;
break;
...
default :
内容不满足时执行代码;
break;
}
例:判断星期
public static void main(String[] args){
int day = 3;
switch (day){
case 1 :
System.out.println("星期一");
break;
case 2 :
System.out.println("星期二");
break;
case 3 :
System.out.println("星期三");
break;
case 4 :
System.out.println("星期四");
break;
case 5 :
System.out.println("星期五");
break;
case 6 :
System.out.println("星期六");
break;
case 7 :
System.out.println("星期天");
break;
default:
System.out.println("输入错误");
}
}
结果:星期三
3.循环语句
1)while循环
基本形式:while(循环条件){
循环语句;
}
例:1-100的和
public static void main(String[] args){
int num = 0;
int n = 0;
while(n <= 100){
num += n;
n++;
}
System.out.println(num);
}
结果:5050
2)for循环
基本形式:for(初始化循环变量;循环条件;更新循环变量){
循环体;
}
例:1-100的和
public static void main(String[] args){
int num = 0;
for (int i = 0; i <= 100; i++){
num += i;
}
System.out.println(num);
}
结果:5050
3)do while循环
基本形式:do{
循环语句;
}while(循环条件);
一般do while很少用到,更推荐是for和while
3.输入输出
输出:
System.out.println 方法调用 打印(换行)
System.out.print 只打印不换行
System.out.print 格式化输出,默认不带换行
输入: Scanner扫描器
hasNext... next...
nextline 行为单位
next 以空格(/t)分割的单词为单位
nextInt 以空格(/t)分割的单词为单位,但转成整型
nextLong
nextIntDouble
使用样式:
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
while(true){
// ctrl + d 结束
boolean b = scanner.hasNextLine();
if (!b){
break;
}
String line = scanner.nextLine();
System.out.println(line);
}
System.out.printf("结束");
}
}
例:猜数字游戏[1-100]不限次数
步骤:1.生成一个[1-100]的随机数,记为toGuess
2.读取用户输入的数字,记为input
3.将input与toGuess比较
如果 input < toGuess 提示输小了,继续输入
input > toGuess 提示输大了,继续输入
input = toGuess 提示猜对了,结束循环
public class Dome5 {
public static void main(String[] args){
Random random = new Random(10086); //生成一个Random对象
int toGuess = random.nextInt(100) + 1; //bound表示边界,表示[0-100)
Scanner s = new Scanner(System.in);
System.out.println("请输入一个1-100的数:");
while(true){
int input = s.nextInt(); //读取用户输入的数
if (input < toGuess){
System.out.println("猜小了");
}else if (input > toGuess){
System.out.println("猜大了");
}else {
System.out.println("猜对了");
break;
}
}
}
}