Java基础语法
1、Java的八种基本数据类型1、byte 1字节 取值范围:-128~127
2、short 2字节 取值范围:-32768~32767
3、int 4字节 取值范围:-231~231-1 # int是开发中最常用的,也是Java中默认的数据类型
4、long 8字节 取值范围:-263~263-1 #声明超过int取值范围的long类型的数据的时候,在值的上面加L或者l,否则报错。
例:long l1 = 28299228; long l2 = 27828299292929L;
5、float 4字节 #声明float类型数据的时候,需要加f后者F float的有效位数为8位
例:float f2 = 1.23456789123f; System.out.println(f2); //1.2345679
float f3 = 2828.8989898989f; System.out.println(f3); //2828.899
6、double 8字节 有效位数为16位。
7、char 2字节 #字符类型的数据使用单引号进行引起来,而且单引号中只能有一个元素
例:char ch1 = '上'; char ch2 = 'k';
8、boolean 1字节 值为true或false
2、类和变量的命名规范
类的命名:
1.首字母大写
2.如果有多个单词组成的类名 采用大驼峰的命名规则 HelloWorld SingleDog
变量的命名:
1.变量的命名可以使用 数字,字母,_,$等组成,但是不能以数字开头
2.首字母不能大写
3.采用的是小驼峰命名规则 或者采用下划线连接多个单词的写法
4.命名一定要见名知意
5.已经被Java预留的关键不能再作为变量的名字了
3、转义字符
目的: 将一个无意义的字符转为有意义的字符或者将一个有意义的字符转为无意义的字符
语法格式:
\字符(有特殊意义的字符或者无特殊意义的字符)
两个特殊的符号:
\t: 制表符 空格
\n: 换行
4、运算符
1、算术运算符
+ - * \
注:算数运算中,两个整数类型的的数,“\”运算的值为结果的整数部分,小数部分舍弃
int m=20, n=3;
System.out.println(m/n);结果:6+= -= *= /= %=
a+=b是a=a+b的简写,后面其他三项同理
自增与自减 变量++ ++变量 变量-- --变量
变量++;先执行当前操作,后变量自身+1
int b=3;
System.out.println(b++); //3 #先执行输出变量b的操作,后变量b的值+1
System.out.println(b); //4 int a = 5;
int i = 5;
// a = 5+ 6 + 8 + 9
a = i+++ i++ + ++i + ++i;
System.out.println(a);//28
System.out.println(i);//9
//a = 9 + 9 + 9
a = i-- + ++i + i++;
System.out.println(a);//272、关系运算符
> = (大于等于) 4; System.out.println(ret1);//false boolean ret2 = (5 > 1); System.out.println(ret2);//true boolean ret3 = 4 >= 3; System.out.println(ret3);//true boolean ret4 = 5 == 5; System.out.println(ret4); boolean ret5 = 6!=6; System.out.println(ret5);//false3、逻辑运算符
&&
boolean ret1 = 3 > 4;
System.out.println(ret1);//false
boolean ret2 = (5 > 1);
System.out.println(ret2);//true
boolean ret3 = 4 >= 3;
System.out.println(ret3);//true
boolean ret4 = 5 == 5;
System.out.println(ret4);
boolean ret5 = 6!=6;
System.out.println(ret5);//false||
语法格式:关系运算符的表达式1 && 关系运算符的表达式2
//如果表达式都为true的时候整体结果i就为true。如果有一个表达式为false,那么整体就为false
boolean ret = (3 > 4) && (4 > 2);
System.out.println(ret);//false
boolean ret1 = (5 >1) && (3 >2) && (9 >= 7);
System.out.println(ret1);//true非: !
boolean ret1 = 3 > 4 || 5 >3;
//||或是只要有一个为true 则整体为true。 两个都是false才为false
System.out.println(ret1);//true
boolean ret2 = 5 < 3 || 7 < 2 || 7 < 4;
System.out.println(ret2);//false逻辑与的短路原则:
条件1 && 条件2 && 条件3&&... 只要有一个为false整体就为false
注意: 条件1为false的话,已经确定整体为false,后面的条件就不再运行。
逻辑或的短路原则
条件1 || 条件2 ||...
只要一个为true,整体就为true了。
注意: 如果条件1 为true的话,后面的条件就不再执行,因为条件1为true的话
已经确定整体的结果了,后面的条件结果不会影响整体的结果了。所以直接短路
boolean ret3 = !(3 > 4);//取反
System.out.println(ret3); //true5、分支结构
1、if 分支
语法格式:
//逻辑与的短路原则
int num = 10;
boolean ret1 = (3 < 2) && (++num > 12);
System.out.println(ret1);//false
System.out.println(num);//10
//逻辑或的短路原则
int num1 = 10;
boolean ret2 = (3 > 2) || (++num1 > 90);
System.out.println(ret2);//true
System.out.println(num1);//10表达式: 一定返回值是布尔类型数据的表达式。(关系运算符表达式和逻辑运算符表达式)
执行流程:首先进入if 判断if后面小括号中的表达式的值 如果为true 则执行后面大括号中的语句体。
如果为false,就不执行大括号中的二语句体,代码要继续往下执行
if (表达式) {
语句体
}2、if-else分支
语法格式:
int a = 3;
if (a < 1) {//小括号中的表达式的结果决定这大括号里面是否执行
System.out.println("嘻嘻,3 大于1");
}
System.out.println("代码执行结束");执行流程:判断表达式,如果表达式为true,执行语句体1。如果表达式为false 执行语句体2
两者只能选其一
if (表达式) {
语句体1
} else {
语句体2
}3、if-else if 分支
语法格式:
int money = 30;//口袋里面有30块钱
//如果口袋里面的钱超过了20,打印我就吃顿好的。鲍鱼
//如果口袋里面的钱没有超过了20,打印就凑合一下。泡面
if (money > 20) {
System.out.println("我就吃顿好的。鲍鱼");
} else {
System.out.println("就凑合一下。泡面+加肠");
} 执行流程: 如果碰到if后面的小括号中的表达式的值为true的时候,就执行对应大括号中的语句体。其他语句体一概不执行,若所以判断条件均未通过,执行else后的语句体。
多种条件只能选择其一 例:
如果语文成绩大于80分且数学成绩大于80分,打印给奖学金
如果语文成绩小于80分大于60且数学成绩大于60分小于80,打印及格
如果语文成绩小于30分且数学成绩小于30分,打印重修
if (表达式1) {
语句体1
} else if (表达式2) {
语句体2
} else if (表达式3) {
语句体3
}else if (表达式4) {
语句体4
}else {
语句体n
}4、switch-case分支
只有当满足当前的条件的时候才会执行前的语句体
语法格式:
int chineseScore = 89;//语文成绩
int mathScore = 29;//数学成绩
/**chineseScore >= 80 && mathScore >= 80
* 89>=80 && 29>=80 true && false 整体结果就是false
*
*/
if (chineseScore >= 80 && mathScore >= 80) {
System.out.println("给奖学金");
} elseif ((chineseScore >= 60 && chineseScore < 80) && (mathScore >= 60 && mathScore < 80)) {
System.out.println("及格");
} else if (chineseScore< 30 && mathScore < 30) {
System.out.println("重修");
} else {
System.out.println("继续努力!!!有一门需要努力");
}执行流程:
首先计算表达式的值,拿到这个值以后去和case后面的常量去匹配。如果发现一致。就执行当前语句体
switch(表达式) {//表达式结果是一个具体的值不是布尔类型的值
case 常量1:
语句体1;
break;
case 常量2:
语句体2;
break;
case 常量3:
语句体3;
break;
...
default://其他的情况
语句体n;
break;
}注:swicth表达式中,常量的值可取的数据类型
byte short int char String 枚举(jdk1.8新特性)
接收控制台的数据给 Java中某一个变量
int score = 28;
//找规律:90~100 91/10=9 92/10 =999/10=9
//87/10=881/10=8
switch (score / 10) {
case 10:
System.out.println("优秀");
break;
case 9:
System.out.println("优秀");
break;
case 8:
System.out.println("良好");
break;
case 7:
System.out.println("一般");
break;
case 6:
System.out.println("及格");
break;
default:
System.out.println("不及格,要努力");
break;
}5、三目运算符
语法格式:数据类型 x = 表达式 ? 值1 : 值2;
执行流程: 先判断表达式 的真假,如果表达式为true的话,将值1赋值给变量x。如果表达式为false的话就会将值2赋值给变量x。
1.导包
import java.util.Scanner;
2.创建一个对象Scanner 对象
Scannerscanner = new Scanner(System.in);
3.拿对象sc调用方法获取控制台的各种类型的数据
int a = scanner.nextInt(); //获取的是整数类型的
double a = scanner.nextDouble(); //获取的是小数类型的
boolean b1 = scanner.nextBoolean(); //获取的是布尔类型的
String str = scanner.next(); //获取的是字符串类型的
char ch1 = scanner.next().charAt(3); //获取字符,依靠字符串来获取 获取控制台输入的字符串的4位字符6、循环结构
循环至少三个条件: 1.初始化条件 2.循环条件 3.终止条件
1、while循环
语法格式:
int a1 = 20;
int c1 = a1 > 50 ? 30 : 0; //先判断 a1 > 50的值,如果true 将30 f赋值c1如果为false 将0 赋值给c1
System.out.println(c1); // 0
//等效于
if ( a1 > 50) {
c2 = 30;
} else {
c2 = 0;
} 执行流程:
如果代码执行到while以后,首先判读小括号中的布尔的表达式
如果布尔表达式为true,执行大括号中的循环体。然后再次到while
再次判断布尔表达式,
直到布尔表达式为false的时候,终止循环。
例:打印1 ~9这些数字
while (布尔表达式) {
循环体;
} int i = 1;
while (i < 10) {
System.out.println(i+" ");//刚好借助i的值 来完成输出
i++;
}2、do-while
语法格式:
1 2 3 4 5 6 7 8 9执行流程:
首先代码走到 do
执行do后面大括号中的代码(循环体),然后执行while后面的布尔表达式,
判断布尔表达式
如果表达式为true 的话,再次回到do 执行循环体,然后执行while后面的布尔表达式
判断布尔表达式
直到布尔表达式为false的话,循环结束
do {
循环体
} while (布尔表达式);注:while 循环和do-while的区别-->while先判断根据判断的结果后执行, do-while 先执行后判断
3、for循环
语法格式:
int i = 9;
do {
System.out.println("hello");
i++;
} while (i < 3);<br>表达式1:初始化的值 表达式2:终止条件 表达式3:循环条件
执行流程: 先执行表达式1
然后执行表达式2进行判断
如果表达式2为true,执行后面大括号中的代码,然后再执行表达式3,
回去执行表达式2进行判断
如果为true 继续执行后面大括号中的代码,执行后面大括号中的代码,执行表达式3。
再次判断表达式2,直到表达式2位false 大括号中的代码不再执行
for (int i=0;i
页:
[1]