一、标识符与变量
java程序的允许是需要占用内存资源的,在内存中可能存储着一些数据如姓名,学号等,随着业务功能的需求变化,存储的值也可能会发生变化,我们将存储值的容器称为变量;
变量:变量是一个容器,是内存一个数据存储空间的表示,变量表示的值是可以随着业务的变化而变化的。
变量的表示方式:变量类型 变量名 = 变量值;
如:int num = 10;
int 为变量类型
num为变量名
10为变量值
如果程序需要使用这个变量,可以直接使用变量名来调用。
我们将变量名称作为标识符,而标识符的命名是由规则的。
Java中需要起名字的地方有项目名,类名,变量名,方法名……
在Java中需要起名字的地方,统称为标识符,每个公司都会有自己的命名规则,但肯定会遵循以下的原则:
标识符命名规则:
1:由大小写字母,数字,_,$组成
2:数字不能作为标识符的开始;
3:java中的关键字和保留字不能作为标识符:class,public,void--------已经有了特殊的含义,goto-保留字
4:Java是严格区分大小写
变量名的定义最好见名思意!
常量:在程序运行中,有些值是不能被改变的,此时可以使用常量来表示,常量的命名规则遵循标识符规则。
规则:使用final修饰的变量,称为常量
注意:
(1)常量名通常大写
(2)不同字符使用下划线分隔
(3)只能被赋值一次,通常定义时即对其初始化
二、数据类型
Java中的数据类型可以分为基本数据类型和引用数据类型
基本数据类型有八个--------记住
整数4个:byte,short,int,long--------默认是int
小数2个:double,float--------默认是double
字符:char,用单引号
布尔:Boolean
引用数据类型:字符串-String(双引号),数组,集合,类,对象
三、键盘录入
程序在运行的时候,如果需要用户输入数据的时候,徐娅使用Scanner类
用法:
1、创建Scanner对象
2、使用这个对象,调用提供的方法
四、类型转化
一种数据类型转换为另一种数据类型称作为数据类型的转化;类型转换分为自动类型转换和强制类型转换。
自动类型转换:
只要double参与的运算,都会自动转换为double类型
两种数据类型要兼容(整数和小数)
目标类型大于源类型,如double和int
强制类型转换
需要手动转换,可能会丢失精度(精准度)
目标类型 变量名 = (目标类型) 源类型
五、运算符
1、赋值运算符
变量名 = 变量值;
变量值可以是一个表达式的结果:如两个数的和
2、算数运算符
基本的算术运算:+、-、*、/、%、++、--
复合算术运算符:+=、-=、*=、/=、%=
3、关系运算符
==、!=、>、<、>=、<=
4、逻辑运算符
运算符 | 含义 | 运算规则 |
&& | 短路与 | 两个操作数都是true,结果才是true |
|| | 短路或 | 两个操作数一个是true,结果就是true |
! | 非 | 操作数为true,结果为false |
操作数为false,结果为true |
5、三元运算符/三目运算符/条件运算符
条件?表达式1:表达式2
注意:三元运算符的结果需要一个变量来接受
六、程序流程说明
程序流程可以分为一下三种:
顺序结构:程序从上向下逐行逐句执行,只能向下;
分支结构:选择结构,判断语句
循环结构:重复执行一段或一条语句
1、if语句
if语句主要用于分支结构,表示判断的意思,主要分为三种表现方式
1:if语法
if一般用于单个判断,表示如果的意思;条件成立则会执行相应的代码
语法:
if(表达式){
//代码块,当表达式为true时,才会执行这里的代码
}
流程图
2:if----else----
if----else---结构一般用于二选一的情况,如果if 成立,执行if的代码,否则执行else中代码块。
if(表达式){
//代码块,当表达式为true时,才会执行这里的代码
}else{
//表达式为false时,执行这里的代码
}
流程图
3:if----else if----else
多重if结构主要用于多重判断的情况,语法如下:
if(表达式1){
//表达式1为true时,执行这里的代码
}else if(表达式2){
//表达式2为true时,执行这里的代码
}else if(表达式3){
//表达式3为true时,执行这里的代码
}else{
//所有条件都不满足的时候,会执行这里的代码
}
if小结:
一次判断用if语句
两次判断(一个真一个假)用if--else语句
两次以上判断使用if---else if---else
4、嵌套if
嵌套if就是在if判断语句中还if判断的语句,嵌套if控制语句可以通过外层语句和内层语句的写作,增强程序的灵活性。
语法如下;
if(条件1){
if(条件2){
代码块1
}else{
代码块2
}
}else{
代码块3
}
流程图如下:
2、switch语句
switch语句是一种选择语句,可以通过匹配某个条件,来执行某块代码
switch(){
case 常量1:
语句;
break;//跳出switch语句
case 常量2:
语句2;
break;
case 常量3:
语句3;
break;
default:
语句;
}
注意:表达式可以接受的类型有:int,short,byte,char,枚举类型,String---记住
switch语句的特点:---记住
switch用于多重分支且条件判断是等值判断的情况
switch结束有两种情况:遇到break;执行到switch语句结束
case和default是没有前后顺序的,但是执行时先执行case语句,如果没有符合的会执行default语句;Default语句一般是放在最后的
3、switch语句和if语句比较---记住
相同点:都可以用来处理多分支结构
不同点:if多用于区间判断;switch用于等值条件的判断
用switch能做的,用if都能做,但反过来则不行
七、循环
常用的循环结构有三大类:while循环、do-while循环,for循环
在Java5中引入一种主要用于数组和对象的增强型for循环,又称foreach循环
1、while循环
语法:
while(循环条件){
循环操作/循环体
}
流程图
注意:
1.while是先判断再执行,编写循环时,明确循环条件和循环操作
2.只有当循环条件为true时,才会执行循环操作
3.注意在循环体中更新循环条件,否则容易造成死循环(条件永远成立)
2、do---while循环
do{
循环操作(先执行一次)
}while(循环条件);
流程图如下:
注意:
1.先执行一遍循环操作,再判断循环条件
2.符合循环条件,循环继续执行;否则,循环退出
;
3、while和do--while的区别----重点
1:语法不同,注意do--while后面的分号不能丢
2:执行次序不同
while是先判断再执行,如果不满足条件,一次都不会执行
do--while是先执行一次,再做判断,如果不满足,至少执行了一次
3:当初始情况不满足循环条件时,while循环一次都不执行,do--while循环不管任何情况都至少执行一次
4、for循环
for(参数初始化;循环条件;更新循环变量){
循环体
}
注意:
1.for循环中必须要有参数初始化,否则报错
2.for循环中必须要有循环条件,且必须更新循环条件,否则就是死循环
5、break、continue
break主要是在循环或switch语句中,用来跳出整个语句块的
break用于完全结束一个循环,跳出循环体,执行循环后面的语句
continue是跳过本次循环中剩下的语句,执行下一次循环
简单点说就是break是结束本次循环,continue终止本次循环
break和continue的比较
1、使用场合:
break常用于switch结构和循环结构
continue只能用于循环结构中
2、在循环中的作用
break用于完全结束一个循环
continue是跳出本次循环,执行下一次循环
八、双层循环
所谓双层循环,就是在循环内部嵌套循环
语法:
for(变量i;循环条件;更新变量){
循环操作1
for(变量j;循环条件;更新变量){
循环操作2
}
}
特点:
1:外层循环控制行,内层循环控制列
2:外层循环更新一次,内层循环更新一轮
九、数组
1、数组是什么
数组是一个容器,可以用来存储相同类型的一组数据。
特点:
1:数组是有长度的;长度:这个数组可以存储几个值。长度从1开始;
2:数组是有下标的;下标:用来操作存取数组中的值,表示数组中元素的位置。下标从0开始;最大值都是长度-1
2、数组的定义方式
方式一:先创建数组,然后赋值
数据类型[] 数组名 = new 数据类型;
数据类型 数组名[] = new 数据类型[数组长度];
特点:1:数组的长度一旦定义了,就不能再改变了,数组的长度是固定的
2:数组在创建的时候就已经有了初始值,初始值是根据数据类型而定。
3:通过下标来操作数组(存取值),下标是从0开始的,到长度-1结束
方式二:创建数组的同时,就赋值
数据类型[] 数组名 = {值,值,值,……};