小白学java第一天

标识符

什么是标识符?
包,类,变量,方法…等等,只要是起名字的地方,那个名字就是标识符
标识符定义规则:
1.四个可以(组成部分):数字,字母,下划线_,美元符号$
注意:字母概念比较宽泛,指的是英文字母,汉字,日语,俄语…
但是我们一般起名字尽量使用英文字母
2.两个不可以:不可以以数字开头,不可以使用java中的关键字
3.见名知意:增加可读性
4.大小写敏感: int a ; int A;
5.遵照驼峰命名:
类名:首字母大写,其余遵循驼峰命名
方法名,变量名:首字母小写,其余遵循驼峰命名
包名:全部小写,不遵循驼峰命名
6.长度无限制,但是不建议太长 asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasfd

关键字

关键字:被JAVA语言赋予了特殊含义,用作专门用途的单词
特点:JAVA中所有关键字都为小写
常用关键字:
在这里插入图片描述
在这里插入图片描述

变量和常量

常量分为两种:
常量通常指的是一个固定的值,例如:1、2、3、’a’、’b’、true、false、”helloWorld”等。
在Java语言中,主要是利用关键字final来定义一个常量。 常量一旦被初始化后不能再更改其值。
为了更好的区分和表述,一般将1、2、3、’a’、’b’、true、false、”helloWorld”等称为字面常量,而使用final修饰的PI等称为符号常量(字符常量)。
字面常量的类型:
注意:逻辑常量就两个值,一个是true,一个是false
变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。 比如,int a=3; 表示a变量的空间大小为4个字节。变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储空间。

【1】变量声明格式:
type varName [=value][,varName[=value]…]; //[ ]中的内容为可选项,即可有可无
数据类型 变量名 [=初始值] [,变量名 [=初始值]…];
案例:
int age = 19 , age2 = 90 ;
int age,age2;
【2】变量的声明:
(1)如果你只定义一个变量,没有给变量进行赋值的话,那么其实这个变量相当于没有定义:
在这里插入图片描述
(2)变量如果没有进行赋值的话,那么使用的时候会出错,告诉你:尚未初始化变量:
在这里插入图片描述
【3】变量的赋值:
在这里插入图片描述
我们自己定义的时候直接就可以用一句话定义:
int age = 10;

变量的值可以更改:

public class TestVar01{
        public static void main(String[] args){
                //变量的声明(定义变量)(以年龄为案例讲解)
                //java是一个强类型的语言,只要声明变量就必须定义类型:定义整数类型
                int age ; //定义一个整数类型的变量,变量名字为age 
                //对变量进行赋值操作:
                age = 10; //变量名字为age,具体的值为10 
                age = 12;
                age = 20;
                age = age + 4;
                age = 9;
                age = 9;
                System.out.println(age);
                
        }
}

变量不可以重复定义
在这里插入图片描述
【4】变量的使用:

public class TestVar01{
        public static void main(String[] args){
                //变量的声明(定义变量)(以年龄为案例讲解)
                //java是一个强类型的语言,只要声明变量就必须定义类型:定义整数类型
                int age ; //定义一个整数类型的变量,变量名字为age 
                //对变量进行赋值操作:
                age = 10; //变量名字为age,具体的值为10 
                age = 12;
                age = 20;
                age = age + 4;
                age = 9;
                age = 9;
                System.out.println(age);
                System.out.println(age-2);
                System.out.println(age+10);
                int num = age + 66;
                System.out.println(num);
                
        }
}

【5】变量的内存:
在这里插入图片描述
【6】变量的作用域:
作用域指的就是作用范围,变量在什么范围中有效
作用范围就是离它最近的{}

备注:一会我们写的代码,不要去运行,会出错

基本数据类型

ava是一种强类型语言,每个变量都必须声明其数据类型。
Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。
在这里插入图片描述

PS:巧妙记忆:除了基本数据类型以外的所有类型都属于引用数据类型

运算符

【1】Java 语言支持如下运算符:
算术运算符
+,-,,/,%,++(自增),–(自减)
赋值运算符
=
扩展赋值运算符
+=,-=,
=,/=
关系运算符
>,<,>=,<=,==,!=
逻辑运算符
&,|, &&,||,!,^
位运算符
&,|,^,~ , >>,<<,>>> (了解!!!)
条件运算符
?:
【2】相关概念辨析

  •    运算符  操作符         Operator
    

5+6 表达式 expression
5 6 操作数 Operand
int m =5+6; 语句 Sentence

流程控制

【1】流程控制的作用:
流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。
【2】控制语句的分类:
控制语句分为三类:顺序、选择和循环。
“顺序结构”代表“先执行a,再执行b”的逻辑。
“条件判断结构”代表“如果…,则…”的逻辑。
“循环结构”代表“如果…,则再继续…”的逻辑。
三种流程控制语句就能表示所有的事情!不信,你可以试试拆分你遇到的各种事情。这三种基本逻辑结构是相互支撑的,它们共同构成了算法的基本结构,无论怎样复杂的逻辑结构,都可以通过它们来表达。所以任何一种高级语言都具备上述两种结构。
本章是大家真正进入编程界的“门票”。
【3】流程控制的流程:
在这里插入图片描述
分支结构
if-单分支
【1】语法结构:
if(布尔表达式){
语句块
}
if语句对布尔表达式进行一次判定,若判定为真,则执行{}中的语句块,否则跳过该语句块。流程图如图所示:
在这里插入图片描述
【2】代码:

public class TestIf01{
        public static void main(String[] args){
                //实现一个功能:给出三个数(1-6),对三个数求和计算,根据和的大小来分配不同的奖品
                //1.给出三个数:
                int num1 = 6;
                int num2 = 2;
                int num3 = 3;
                //2.求和
                int sum = 0;
                sum += num1;
                sum += num2;
                sum += num3;
                System.out.println("和为:"+sum);
                
                //3.根据和判断奖品:
                //如果和大于等于14,那么就是一等奖
                if(sum>=14){
                        System.out.println("一等奖");
                        System.out.println("恭喜你很幸运,中了一等奖");
                }
                
                if(sum>=10&&sum<14){
                        System.out.println("二等奖");
                }
                
                if(sum>=6&&sum<10){
                        System.out.println("三等奖");
                }
                
                if(sum<6){
                        System.out.println("四等奖");
                }
                
                /*
                if-单分支:
                (1)结构:
                        if(条件表达式,这个表达式的结果是布尔值:要么是false,要么是true){
                                //如果上面()中的表达式返回结果是true,那么执行{}中代码
                                //如果上面()中的表达式返回结果是false ,那么不执行{}中代码
                                //PS:{}中的代码是否执行,取决于()中表达式的返回结果
                        }
                (2)上面的代码中,我用四个单分支拼凑出四个选择,每个选择是独立的,依次判断执行的
                (3)if后面的()中的条件,要按照自己需求尽量完善
                (4){}可以省略不写,但是一旦省略,这个if就只负责后面的一句话,所以我们不建议初学者省略
                */
        }
}

if-多分支
【1】语法结构:
if(布尔表达式1) {
语句块1;
} else if(布尔表达式2) {
语句块2;
}……
else if(布尔表达式n){
语句块n;
} else {
语句块n+1;
}
当布尔表达式1为真时,执行语句块1;否则,判断布尔表达式2,当布尔表达式2为真时,执行语句块2;否则,继续判断布尔表达式3······;如果1~n个布尔表达式均判定为假时,则执行语句块n+1,也就是else部分。流程图如图所示:
在这里插入图片描述
【2】代码:

public class TestIf02{
        public static void main(String[] args){
                //实现一个功能:给出三个数(1-6),对三个数求和计算,根据和的大小来分配不同的奖品
                //1.给出三个数:
                int num1 = 6;
                int num2 = 4;
                int num3 = 2;
                //2.求和
                int sum = 0;
                sum += num1;
                sum += num2;
                sum += num3;
                System.out.println("和为:"+sum);
                
                //3.根据和判断奖品:
                /*
                利用一个多分支
                【1】结构:
                if(){
                        
                }else if(){
                        
                }else if(){
                        
                }...
                else{
                        
                }
                【2】else:隐藏了一个条件,跟上面分支条件表达式相反的功能 (详见数轴分析)
                【3】多分支:好处:只要满足一个 分支以后,后面的分支就不需要判断了 --》效率高
                【4】我们写代码的时候,尽量保证else的存在--》else分支相当于“兜底”“备胎”的作用,别的分支都不走,就会走这个分支了
                */
                if(sum>=14){
                        System.out.println("一等奖");
                }else if(sum>=10){//隐藏了sum<14
                        System.out.println("二等奖");
                }else if(sum>=6){//隐藏了sum<10
                        System.out.println("三等奖");
                }else{//隐藏了sum<6
                        System.out.println("四等奖");
                }
                
                
                
        }
}

switch多分支结构
【1】switch多分支结构(多值情况)
语法结构:
switch (表达式) {
case 值1:
语句序列1;
[break];
case 值2:
语句序列2;
[break];
… … … … …
[default:默认语句;]
}

switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。如果表达式的值与任一case值不匹配,则进入default语句(如果存在default语句的情况)。根据表达式值的不同可以执行许多不同的操作。switch语句中case标签在JDK1.5之前必须是整数(long类型除外)或者枚举,不能是字符串,在JDK1.7之后允许使用字符串(String)。大家要注意,当布尔表达式是等值判断的情况,可以使用if-else if-else多分支结构或者switch结构,如果布尔表达式区间判断的情况,则只能使用if-else if-else多分支结构。switch多分支结构的流程图如图所示:
在这里插入图片描述
【2】代码:

public class TestSwitch{
        public static void main(String[] args){
                /*
                实现一个功能:
                根据给出的学生分数,判断学生的等级:
                >=90  -----A
                >=80  -----B
                >=70  -----C
                >=60  -----D
                <60   -----E
                
                用if分支:
                if(score>=90){
                        
                }else if(score>=80){
                        
                }
                */
                //1.给出学生的成绩:
                int score = 167;
                //2.根据成绩判断学生的等级:
                switch(score/10){
                        case 10 : 
                        case 9 : System.out.println("A级");break;
                        case 8 : System.out.println("B级");break;
                        case 7 : System.out.println("C级");break;
                        case 6 : System.out.println("D级");break;
                        default:System.out.println("成绩错误");break;
                        case 5 :  
                        case 4 :  
                        case 3 :  
                        case 2 :  
                        case 1 :  
                        case 0 : System.out.println("E级");break;
                        
                }
                /*
                【1】语法结构:
                switch(){
                        case * :
                        case * :
                        .......
                }
                【2】switch后面是一个(),()中表达式返回的结果是一个等值,这个等值的类型可以为:
                int,byte,short,char,String,枚举类型
                【3】这个()中的等值会依次跟case后面的值进行比较,如果匹配成功,就执行:后面的代码
                【4】为了防止代码的“穿透”效果:在每个分支后面加上一个关键词break,遇到break这个分支就结束了
                【5】类似else的“兜底”“备胎”的分支:default分支
                【6】default分支可以写在任意的位置上,但是如果没有在最后一行,后面必须加上break关键字,
                如果在最后一行的话,break可以省略
                【7】相邻分支逻辑是一样的,那么就可以只保留最后一个分支,上面的都可以省去不写了
                【8】switch分支和if分支区别:
                表达式是等值判断的话--》if ,switch都可以
                如果表达式是区间判断的情况---》if最好
                【9】switch应用场合:就是等值判断,等值的情况比较少的情况下
                */
        }
}

循环结构
while
【1】语法结构:
while (布尔表达式) {
循环体;
}
在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前重新计算一次。
语句中应有使循环趋向于结束的语句,否则会出现无限循环–––"死"循环。
while循环结构流程图如图所示:
在这里插入图片描述
代码

public class TestWhile{
        public static void main(String[] args){
                //功能:1+2+3+4+5
                //1.定义变量:
                int num = 1;[1]条件初始化
                //2.定义一个求和变量,用来接收和:
                int sum = 0;              
                while(num<=5){[2]条件判断
                        sum += num;[3]循环体
                        num++;[4]迭代
                }      
                //3.输出和
                System.out.println(sum);
        }
}

do-while
【1】语法结构:
do {
循环体;
} while(布尔表达式) ;
do-while循环结构会先执行循环体,然后再判断布尔表达式的值,若条件为真,执行循环体,当条件为假时结束循环。do-while循环的循环体至少执行一次。do-while循环结构流程图如图所示:
在这里插入图片描述
代码

public class TestDoWhile{
        public static void main(String[] args){
                //1+2+3+4+...100
                //while方式:
                /*
                int i = 101;
                int sum = 0;
                while(i<=100){
                        sum += i;
                        i++;
                }
                System.out.println(i);//101
                System.out.println(sum);//0
                */
                //do-while方式:
                
                int i = 101;
                int sum = 0;
                do{
                        sum += i;
                        i++;
                }while(i<=100);//一定要注意写这个分号,否则编译出错
                System.out.println(i);//102
                System.out.println(sum);//101
                /*
                【1】while和do-while的区别:
                        while:先判断,再执行
                        do-while:先执行,再判断---》至少被执行一次,从第二次开始才进行判断
                【2】什么场合使用do-while:
                
                while(考试是否通过){
                        考试;
                }
                ---》不合适
                do{
                        考试;
                }while(考试是否通过);
                ---》合适
                */
                
        }
}

for
1】语法结构:
for (初始表达式; 布尔表达式; 迭代因子) {
循环体;
}
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。for循环在第一次反复之前要进行初始化,即执行初始表达式;随后,对布尔表达式进行判定,若判定结果为true,则执行循环体,否则,终止循环;最后在每一次反复的时候,进行某种形式的“步进”,即执行迭代因子。
初始化部分设置循环变量的初值
条件判断部分为任意布尔表达式
迭代因子控制循环变量的增减
for循环在执行条件判定后,先执行的循环体部分,再执行步进。
for循环结构的流程图如图所示:
在这里插入图片描述
代码

public class TestFor01{
        public static void main(String[] args){
                //1+2+3+..+100
                //while:
                /*int i = 1;
                int sum = 0;
                while(i<=100){
                        sum += i;
                        i++;
                }
                System.out.println(sum);
                */
                
                //for:
                int sum = 0;
                int i;
                for(i = 1;i<=100;i++){
                        sum += i;
                }
                System.out.println(sum);
                System.out.println(i);
                
                /*
                【1】for的结构:
                for(条件初始化;条件判断;迭代){
                        循环体;
                }
                
                【2】i的作用域:作用范围:离变量最近{}  --->可以自己去控制
                【3】for循环格式特别灵活:格式虽然很灵活,但是我们自己写代码的时候不建议灵活着写。
                for(;;){}  -->死循环
                
                int i = 1;
                for(;i<=100;){
                        sum += i;
                        i++;
                }
                
                【4】死循环:
                for(;;){}
                
                while(true){}
                
                do{
                        
                }while(true);
                
                【5】循环分为两大类:
                第一类:当型   while(){}   for(;;){}
                第二类:直到型  do{}while();
                
                【6】以后常用:for循环 
                【7】do-while,while,for循环谁的效率高?  一样高 
                */
        }
}

关键字
在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。
continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
return的作用,结束当前所在方法的执行.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值