文章目录
1. Java基础语法
1.1 注释
注释是对代码的解释,可以提高程序的可读性,因此在程序中添加必要的注释是十分重要的。Java中常用的注释有三种:单行注释、多行注释和文档注释。
//单行注释
/*
多行注释
多行注释
*/
/**
这是
文档注释
*/
1.2 关键字
关键字是指被Java语言负欲特殊含义的词;
关键字的特点:关键字的字母全部为小写;
例如:public,class,static这些关键词在编译器中会有高亮提示
public static void main()//这些就是高亮提示.
1.3 常量
常量:指值不可改变的量。
- 字符串常量 用双引号括起来的多个字符(可以包含0个、一个或多个),例如"a"、 “abc”、"我是常量"等。
- 整数常量 :整数。例如:-10、0、22等。
- 小数常量 :小数,例如:-0.5、5.0、5.55等。
- 字符常量 :用单引号括起来的一个字符,例如:‘a’、‘1’、‘B’、'常’等.
- 布尔常量 :布尔值,表示真假,只有两个值true和false
- 空常量 :空值,值为null (空常量不可使用输出语句直接输出)
效果展示:
public class Test05 {
public static void main(String[] args) {
System.out.println("我是字符串");//输出一个字符串
System.out.println(10);//输出一个整数
System.out.println(10.0);//输出一个小数
System.out.println('A');//输出一个字符
System.out.println(true);//输出一个布尔值true
}
}
输出结果:
我是字符串
10
10.0
A
true
1.4 变量
变量:指值可以改变的量。
1.4.1 变量的定义格式:
- 1.数据类型 变量名=变量值;
例如:
public class Test05 {
public static void main(String[] args) {
int a=2;
System.out.println(a);
}
}
输出结果:
2
-
- 数据类型 变量名;
变量名=变量值;
例如:
- 数据类型 变量名;
public class Test05 {
public static void main(String[] args) {
int a;
a=2;
System.out.println(a);
}
}
输出结果:
2
1.4.2 使用变量时的注意事项
- 变量在使用前必须要进行初始化即赋值;
- 在定义flaot类型的变量时,必须在小鼠的后面加上F(大小写均可)。
1.5 基础数据类型
基础数据类型分为两种:数值型和非数值型。
- 数值型:整型(byte, short, int, long)、浮点型(double, float)、字符型(char);
- 非数值型:布尔型(boolean)
内存占用:
- 整数类型:byte(1字节)、short(2字节)、int(4字节)、long(8字节);
- 浮点类型:flaot(4字节)、double(8字节);
- 字符类型:char(2字节);
- 布尔类型:boolean(1字节)。
2. 运算符
2.1 算术运算符
算术运算符有这些:+、-、*、/、%(取余),和小学学的代数计算方法一样。其中“%”是去两个数据作除法后取它们的余数的操作。
2.1.1 “/”和“%”的操作
public class Test05 {
public static void main(String[] args) {
int a=4;
System.out.println(a/2);//若除数为**整数** 则结果为**整数**
System.out.println(a/2.0);//若除数为**小数** 则结果为**小数**
System.out.println(a%3);//对4除以3取余数 结果应该是1
}
}
输出结果:
2
2.0
1
2.1.2 “+”的操作
public class Test05 {
public static void main(String[] args) {
int a=4;
//算数加法的作用
System.out.println(a+2);//对数据进行4+2的操作 输出结果应为6
//字符串连接词的作用
System.out.println(a+"我是字符串");//将2和我是字符串连接在一起 输出应为4我是字符串
}
}
输出结果:
5
4我是字符串
2.2 赋值运算符
赋值运算符的作用为将一个表达式的值赋给左边的变量(不能是常量)。
- =:赋值;
- +=:先加后赋值;
- -=:先减再赋值;
- *=:先乘再赋值;
- /=:先除再赋值
- %=:先取余再赋值
2.3 自增自减运算符
-
++:自增运算符 变量的值+1, a++为先用变量a的值再进行+1操作;++a为先对a进行+1操作再用变量a的值;
-
–:自减运算符 变量的值-1,a–为先用变量a的值再进行-1操作;–a为先对a进行-1操作再用变量a的值;
例如:
public class Test05 {
public static void main(String[] args) {
int a=4;
System.out.println(a++);//先用变量a的值 应该为4 内部再进行+1操作
System.out.println(a);//这是进行+1操作后的值
int b=2;
System.out.println(++b);//先加后用 输出的值应为进行+1操作后的值
int c=3;
System.out.println(c--);//先用变量c的值 3 内部再进行-1操作
System.out.println(c);//这是进行-1操作后的值
int d=1;
System.out.println(--d);//先减后用 输出的值应为进行-1操作后的值
}
}
输出结果:
4
5
3
3
2
0
2.4 关系运算符
- 关系运算符有6种:>(大于)、<(小于)、==(等于)、!=(不等于)、>=(大于等于)、<=(小于等于)。
- 关系运算符的结果都是boolean(布尔类型)的,即结果只能是true或false;
例如:
public class Test05 {
public static void main(String[] args) {
//定义变量
int a=4;
int b=5;
int c=5;
//输出结果
System.out.println(a==b);
System.out.println(a!=b);
System.out.println(c==b);
System.out.println(c!=b);
System.out.println(c>=b);
System.out.println(c<=b);
System.out.println(a<b);
System.out.println(a<=b);
System.out.println(a>=b);
}
}
输出结果:
false
true
true
false
true
true
true
true
false
2.5 逻辑运算符
逻辑与算符把各个运算的关系表达式连接起来组成复杂的逻辑表达式来判断表达式是否成立,即判断结果为true还是false。
- & (逻辑与) a&b 只有两个值都为true才为true,反之为false;
- | (逻辑或)a|b 只有两个值都为false才为false,反之为true;
- ! (逻辑非) !a 结果和a的结果相反;
- ^(逻辑异或) a^b a和b结果不同才为true,相同为false。
例如:
//定义变量
int i = 10;
int j = 20;
int k = 30;
//& “与”,并且的关系,只要表达式中有一个值为false,结果即为false
System.out.println((i > j) & (i> k)); //false & false,输出false
System.out.println((i < j) & (i> k)); //true & false,输出false false
System.out.println((i > j) & (i< k)); //false & true,输出
System.out.println((i < j) & (i< k)); //true & true,输出true
System.out.println("--------");
//| “或”,或者的关系,只要表达式中有一个值为true,结果即为true
System.out.println((i > j) | (i> k)); //false | false,输出false
System.out.println((i < j) | (i> k)); //true | false,输出true
System.out.println((i > j) | (i< k)); //false | true,输出true
System.out.println((i < j) | (i< k)); //true | true,输出true
System.out.println("--------");
//^ “异或”,相同为false,不同为true
System.out.println((i > j) ^ (i > k)); //false ^ false,输出false
System.out.println((i < j) ^ (i > k)); //true ^ false,输出true
System.out.println((i > j) ^ (i < k)); //false ^ true,输出true
System.out.println((i < j) ^ (i < k)); //true ^ true,输出false
System.out.println("--------");
//! “非”,取反
System.out.println((i > j)); //false
System.out.println(!(i > j)); //!false,输出true
输出结果:
false
false
false
true
--------
false
true
true
true
--------
false
true
true
false
--------
false
true
2.5.1 短路逻辑运算符
- 短路与&&:若左边为真则执行右边,若左边为假则不执行右边(短路);
- 短路或||:若左边为假则执行右边,若左边为真则不执行右边(短路);
例如:
int x=3;
int y=5;
System.out.println((x++>4)&&(y>3));//左边已经可以确定结果为false了,没必要再看右边的值了,即发生逻辑短路
System.out.println((++x>3)||(y>3));//左边已经确定值=结果为true了,没必要再看右边了,发生了逻辑短路
2.6 三元运算符
三元运算符的表达格式:
关系表达式?表达式1:表达式2;
说明:若关系表达式的值为 true则执行表达式1,值为false则执行表达式2。
例如:
int a = 10;
int b = 20;
int c = a > b ? a : b; // 判断 a>b 是否为真,如果为真取a的值,如果为假,取b的值
System.out.println(c);//输出c的值
输出结果:
20
3.流程控制语句
3.1顺序结构
- 顺序结构:即在程序执行时,按照代码的先后顺序执行,程序中很多代码都是这样执行的。
3.2 分支结构
- 分支结构由if或swich语句构成,其中if语句有三种格式。
3.2.1 if语句格式1
if(关系表达式) {
语句体;
}
说明:先判断关系表达式的值,若为true 则执行语句体,若为false 则不执行 继续执行后面的内容
例如:
//定义两个变量
int a=4;
int b=5;
if(a>b){
System.out.println("我是第一个语句体");//关系表达式值为false 不执行语句体1
}
if(a<b){
System.out.println("我是第二个语句体")//关系表达式值为true 执行语句体2
}
输出结果:
我是第二个语句体
3.2.2 if语句格式2
格式:if(关系表达式) {
语句体1
}
else{
语句体2
}
说明:先判断关系表达式的值,若值为true 则执行语句体1,若为false 则执行语句体2。
例如:
//定义变量
int a = 10;
int b = 20;
if (a>b){
System.out.println("我是第一个语句体");//a>b为false 不执行 执行后面的内容
}
else {
System.out.println("我是第二个语句体");
}
输出结果:
我是第二个语句体
3.2.3 if语句格式3
格式:if(关系表达式1) {
语句体1
}
else if(关系表达式)2{
语句体2
}
else {
语句体3
}
说明:先判断关系表达式1,若值为true 则执行语句体1 若值为false 则对关系表达式2进行判断,若值为true 则执行语句体2,若值为false 则执行后面内容, 即执行语句体3。
例如:
//定义变量
int a = 10;
int b = 20;
if (a>b){//a>b值为false 执行关系表达式2
System.out.println("我是第一个语句体");
} else if (a==b) {//a==b值为falsa 执行之后内容 注意表示值相等用**==**,而不是赋值=
System.out.println("我是第二个语句体");
}
else {
System.out.println("我是第三个语句体");
}
输出结果:
我是第三个语句体
3.2.4 switch语句
格式:
switch (表达式) {
case 1:
语句体1;
break;
case 2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
说明:
- 先计算表达式的值;
- 然后和各个case的值进行比较,若值相等 则执行该case语句体,遇到break则结束;若值不相等 则依次执行之后的case,直到有匹配的值。
- 最后,如果所有值都不匹配的话,就执行default之后的语句。
- 注意:如果case语句后没有加break 则会继续向下执行 进行匹配,这个现象叫做 ”穿透“,它的作用是进行代码优化。
例如:
switch (7){//表达式的值为7 向下依次匹配
case 1:System.out.println("该月份处在冬季");
case 2:System.out.println("该月份处在冬季");
case 12:System.out.println("该月份处在冬季");
break;
case 3:System.out.println("该月份处在春季");
case 4:System.out.println("该月份处在春季");
case 5:System.out.println("该月份处在春季");
break;
case 6://匹配成功 但是该处没有break 所以继续执行
case 7://该处没有break 继续执行
case 8:System.out.println("该月份处在夏季");//执行该语句体
break;//遇到break 结束进程
case 9:
case 10:
case 11:System.out.println("该月份处在秋季");
break;
}
}
输出结果:
该月份在夏季
3.3 循环结构
- 循环结构有三种:for循环、while循环、do…while循环。
- 循环的作用:可以在满足循环条件的情况下反复执行某一段代码,记得在满足某一条件的情况下使判断条件的值为false从而结束循环,不然的话会形成死循环,极大的占用电脑cpu。
3.3.1 for循环
格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体语句
}
说明:
- 初始化语句:表示循环开始时的起始状态;
- 条件判断语句:用于判断循环是否能一直执行的条件;
- 循环体语句:被循环反复执行的内容;
- 条件控制语句:表示循环中每次变化的内容,控制循环是否能继续执行下去;
执行流程:
-
- 执行初始化语句
-
- 执行条件判断语句,看其结果是true还是false,如果是false,循环结束, 如果是true,继续执行;
-
- 执行循环体语句;
-
- 执行条件控制语句;
-
- 回到2继续 。
例如:
需求:输出5次HelloWorld
public class Test {
public static void main(String[] args) {
//需求:在控制台输出5次"HelloWorld"
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("--------");
//用循环改进
for(int i=1; i<=5; i++) {
System.out.println("HelloWorld");
}
}
}
需求:输出1~50的和
public class Test{
public static void main(String args[]){
int sum=0;//初始化
for(int i=1;i<=50;i++){//初始化 从1开始 直到50结束 每次+1
sum+=i;
}
System.out.println(sum);
}
}
- for循环还可以嵌套使用
例如:
public class Test {
public static void main(String[]args){
for (int hour=0;hour<=2;hour++){//外循环
for (int min=0;min<=2;min++){//内循环
System.out.println(hour+"时"+min+"分");
}
}//外循环执行一次 内循环执行一圈 内循环不结束 外循环是不会继续向下执行的
}
}
输出结果:
0时0分
0时1分
0时2分
1时0分
1时1分
1时2分
2时0分
2时1分
2时2分
3.3.2 while循环
格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
执行流程:
- 1.执行初始化语句;
- 2.执行条件判断语句,若值为false 则循环结束,若值为true 则执行循环体语句;
- 3.执行循环体语句;
- 4.执行控制条件语句;
- 5.回到2继续。
例如:
需求:输出5次HelloWorld
public class Test{
public static void main(String args[]){
int i=1;//初始化
while(i<=5){
System.out.println("HelloWorld");
i++;
}
}
}
需求:输出1~50的和
public class Test{
public static void main(String args[]){
int sum=0;
int i=1;//初始化
while(i<=50){
sum+=i;
i++;
}
System.out.println(sum);
}
}
3.3.3 do…while循环
格式:
初始化语句 ;
do{
循环体语句;
条件控制语句;
}
while(条件判断语句);
执行流程:
-
- 执行初始化语句;
-
- 执行循环体语句;
-
- 执行条件控制语句;
-
- 执行条件判断语句,若值为false 则结束循环,若值为true 则继续执行;
-
- 回到2继续.
例如:
需求:输出5次HelloWorld
public class Test{
public static void main(String args[]){
int i=1;//初始化
do{
System.out.println("HelloWorld");
i++;
}
while(i<=5);
}
}
需求:输出1~50的和
public class Test{
public static void main(String args[]){
int sum=0;
int i=1;//初始化
do {
sum+=i;
i++;
}
while(i<=50);
System.out.println(sum);
}
}
3.3.4 三种循环的区别
- for循环和while循环都是先判断条件是否成立再执行循环体;
- do…while循环则是先执行一次循环体,再判断条件是否成立,若成立则再次执行循环体,否则结束循环.
- 注意: break表示跳出循环 即结束循环;continue表示跳出本次循环,继续下次循环.
总结
本篇文章主要讲述了Java的基础语法知识,运算符和流程控制语句,大家可以用作预习或者复习;建议大家打牢基础,学完基础知识后总结一下,会发现有很多意想不到的收获.
跳转至目录Java基础语法