java语法基础(二)

流程控制语句

  表达式语句

  在表达式后面添加;就构成了表达式语句,简称“语句” 我们编写java代码,更多时候都是在书写表达式语句。 int i;声明语句 i = 10;赋值语句

  流程控制语句

  流程控制语句主要实现对代码的执行流程进行选择,循环,转向,返回等控制。按照对代码执行过程中的影响,一般我们把流程控制语句分成三种结构: 顺序结构:程序默认就是从上往下的顺序依次执行代码;就好像按照一条直道开车。 分支结构(选择结构):使得代码按照逻辑情况选择进行执行,就好像遇到了交叉路口。 包括:if语句,if...else语句,switch语句 循环结构:使得代码循环执行,就好像迷路了,绕着环岛一直开,直到想起来。 包括:while循环语句,do...while循环语句,for循环语句

  if语句,if...else语句

  if语句和if...else语句属于分支结构的流程控制语句。 要求if语句中的表达式都是boolean类型的值。 if 语句: if语句用来判断条件是否满足(真/假),根据判断结果决定是否执行语句。 if语句的代码结构: if(条件表达式){ 执行语句; } 代码执行流程: 1 判断表达式是否成立(true/false) 2 如果表达式成立,执行“执行语句”;否则跳过if语句,按照顺序结构执行if语句下面的代码。 比如判断质数素数 主要事项: 如果执行代码只有一行,可以省略大括号。如果省略大括号,if语句只对它后面的一条语句起作用。哪怕后面跟了空语句。 {}表示局部代码块,表示多条语句的集合。 if...else语句 if...else语句用来判断条件是否满足(真/假),根据判断结果决定执行语句1,还是执行语句2。二选一执行。 if...else语句代码结构: if(条件表达式){ 执行语句1; }else{ 执行语句2; } 代码执行流程: 1 判断表达式是否成立;如果为真,执行“执行语句1”,然后结束if...else语句,按照顺序结构,执行下面的代码 2 如果表达式不成立,执行“执行语句2”,然后结束if...else语句,按照顺序结构,执行下面的代码 if...else语句和?:三元表达式的逻辑很像,那么实际开发中怎么选择: 三元表达式的特点:结构简单;但是在java中整个表达式必须返回一个结果。所以在三元运算表达式中,如果执行语句是println等没有返回结果的语句,会导致编译器报错。 if...else if...else语句: if...else if ...else语句会判断哪个条件满足,然后执行那条语句。属于多选一的执行方式。 if...else if...else语句的代码结构: if(表达式1){ 执行语句1; }else if(表达式2){ 执行语句2; }else if(表达式3){ 执行语句3; } ... else{ else执行语句; } 代码执行流程: 1 判断表达式1是否成立;如果为真,执行“执行语句1”,然后结束if...else if...else语句,按照顺序结构,执行下面的代码。 2 如果表达式1不成立; 判断表达式2是否成立;如果为真,执行“执行语句2”,然后结束if...else if...else语句,按照顺序结构,执行下面的代码。 依次类推; 3 如果所有的表达式都不成立。执行“else执行语句”,然后结束if...else if...else语句,按照顺序结构,执行下面的代码。

  switch语句

  switch语句属于分支结构的流程控制语句。主要目的是实现多选一操作。 switch语句的代码结构: switch(表达式){ case 值1:执行语句1;break; case 值2:执行语句2;break; case 值3:执行语句3;break; ... default :default执行语句; } switch语句要求: switch表达式的值可以是byte,char,short,int,String。String是从jdk7.0之后开始。 值1,值2,值3,必须是常量 switch没个case语句后面,最好带有break关键字,否则会贯穿执行。 switch语句的代码执行流程: 1先计算表达式的值 2 根据表达式的值,进行匹配值1;如果匹配,执行“执行语句1”,如果后面有break,则跳出switch语句;否则贯穿执行“执行语句2”,“执行语句3”,“default执行语句”; 3 如果值1不匹配,进行匹配值2;如果匹配,执行“执行语句2”,如果后面有break,则跳出switch语句;否则贯穿执行“执行语句3”,“default执行语句”; 4 如果值2不匹配,进行匹配值3;如果匹配,执行“执行语句3”,如果后面有break,则跳出switch语句;否则贯穿执行“default执行语句”; 5 如果所以case值都不匹配,那么执行default语句。根据default语句位置,判断是否贯穿执行。 switch语句的逻辑,也可以使用if else if else语句实现。

  while循环

  while语句属于循环结构的流程控制语句。主要控制代码的反复执行。 while语句的代码书写格式: while(条件表达式){ 循环执行的语句; } 条件表达式返回一个boolean类型的值。 代码执行流程: 1 判断表达式是否成立,如果成立,执行“循环执行语句”;否则结束while循环 2 如此反复 注意: 如果表达式直接写变量ture,那么代码会一直循环执行“循环执行语句”。属于“死循环”。 在控制台,如果想要结束死循环,需要结束程序运行,ctrl+c 为了是while循环语句可以按照需要只执行有限次循环,我们通常使用变量控制。 int i = 0; while(i<10){ 执行语句; i++; } 如果只有一句循环语句,可以省略大括号。如果省略了大括号,while语句只对下面的一句话起作用,哪怕是空语句。

  do...while循环

  do...while语句的代码书写格式: do{ 循环执行的语句; }while(条件表达式); 条件表达式返回一个boolean类型的值。 代码执行流程: 1 首先执行“循环执行语句” 2 判断表达式是否成立,如果成立,执行“循环执行语句”;否则结束while循环 3 如此反复 它和while语句的区别: 无论条件是否成立,循环执行的语句总是要执行一次。 更多情况下,我们会使用while循环语句。它更符合我们的逻辑判断习惯。

  for循环

  for循环语句,属于循环流程控制语句。 代码书写结构: for(初始化语句 ; 判断语句 ; 每次循环后执行的语句){ 循环语句; } 初始化语句:进入for循环以后,首先执行的语句。整个for循环过程中,只执行一次。 判断语句:判断条件是否成立,如果成立,就继续执行for循环;否则结束for循环 每次循环执行完后,执行“每次循环后执行的语句” 代码执行流程: 1 进入for循环,执行“初始化语句” 2 判断“判断语句是否成立”,如果不成立,直接结束for循环 3 如果“判断条件”成立,执行“循环语句”,在执行“每次循环后执行的语句” 4 继续步骤2直到跳出for循环。 注意事项: 1 for( ; ; )是死循环 2 初始化语句可以写在for循环上面 3 每次循环后执行的语句,可以写在循环语句后面。

  转移字符

  在java中,一些字符有特殊的含义,比如",',\ 等,为了在编程中使用这些特殊的字符,我们需要用转义字符

  break,continue关键字

  break,结束当前循环;或者防止switch语句贯穿 continue,结束本次循环

 

函数

  函数了解

  函数:是为了提高代码的复用性,而把功能单独封装的代码。 比如我们求和2+3,4+5,6+7,如果不使用函数,需要不断创建变量,并且用代码求和。有了函数以后,就可以很容易实现。

  函数的代码书写格式

  函数的声明 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2, ...){ 需要执行的代码; return 返回值; } 如果希望函数可以执行,必须要调用。 函数的调用 函数名(实际参数1,实际参数2, ...); 修饰符:用来修饰函数的访问权限,静态性等。 返回值类型:函数最终返回的数据的类型。 函数名:函数的名称,用户自己指定,要符合java标识符的规定 形式参数列表:属于函数内的局部变量,用于接受调用方传递过来的参数 实际参数:调用时候,传递的具体数据。 返回值:函数的具体运算结果。

  定义函数的步骤

  1 首先确定函数执行什么样的功能 2 确定最终希望函数返回的值得类型 3 确定函数需要哪些参数,以及参数的类型 4 给函数起名字,做到见名知意

  函数实例1 写一个函数,求两个int类型的整数的和。 写一个函数,求两个int变量中最大的值是多少

  void return关键字

  如果函数不需要返回值,声明函数的时候,返回值类型可以使用void 当执行到return关键字的时候,整个代码就算执行完毕,不管return后面有没有其他代码。 return关键字的作用: 1 返回结果给调用方。 2 结束函数的执行。

  函数的特点

  1 通过函数可以对功能代码进行封装 2 能够实现代码的复用 3 函数需要被调用才会执行 4 如果有返回值,直接使用return进行返回;没有返回值,可以使用return后面不加具体的值,也可以不要return语句。

  函数的重载

  函数重载:如果在一个类中,两个或者两个以上的函数具有相同的函数名称,但是不同的参数个数或者参数类型,我们称之为函数的重载。 重载的意义:为了让函数的调用变得更加灵活方便,优化程序的设计。

  重载实例: 写一个函数,求两个相同类型变量的和,可以是int类型,float类型

 

数组

  什么是数组

  数组:同一种数据类型的数据的集合。使用数组可以帮助我们方便有序的存储和管理多个相同类型的数据。 特点:使用索引设置或者查询变量的值。

  数组的声明方式

  动态声明方式: 类型[] 数组变量名 = new 类型[元素的个数]; int[] arr = new int[5]; 静态声明方式: 类型[] 数组变量名 = new 类型[]{元素列表}; int[] arr = new int[]{1,2,3,4,5}; 简单形式: 类型[] 数组变量名 = {元素列表}; int[] arr = {1,2,3,4,5};

  数组的内存图

  数组在内存中的存在形式,画图表示 数组一旦在内存中创建完毕了以后,长度就不能再发生变化了。

  数组的元素访问

  数组索引(脚标):数组是有序的,可以通过数组的索尼访问数组的元素。索引是数组中元素的位置编号,从0开始到元素的个数-1。 数组通过索引访问元素的代码格式 数组变量名[索引] 设置/修改对应元素的值 数组变量名[索引] = 常量; arr[1] = 10; 获取元素的值: 数组变量名[索引] println(arr[1]);

  数组元素的遍历

  依次访问数组中每个元素,我们称为“元素的遍历” 在代码中,我们可以通过循环配合脚标的方式,变量数组中元素。 public static void main(String[] args) { int[] x = { 1, 2, 3 }; System.out.println(x[3]); //java.lang.ArrayIndexOutOfBoundsException }

  数组常见问题

  1 数组越界 数组的索引是从0到数组元素个数减1;不要让索引超出这个范围 2 空指针异常 在java中除了八种基本数据类型是值类型以外,其他都属于是引用类型。数组属于引用类型,数组对象为null的情况下,不可以访问元素。

  数组的排序,查找

  数组的排序: 1 冒泡排序 2 选择排序 数组的查找: 二分法查找

  选择排序

  冒泡排序

  Arrays工具类的使用

  Arrays是一个类,存在于java.util包中。它有很多类方法,可以帮助我们进行数组对象的处理。 遍历: toString() 将数组的元素以字符串的形式返回 排序: sort() 将数组按照升序排列 查找: binarySearch()在指定数组中查找指定元素,返回元素的索引,如果没有找到返回(-插入点-1) 注意:使用查找的功能的时候,数组一定要先排序。

  二维数组

  二维数组:二维数组的实质是一维数组 二维数组的声明方式 动态声明: 类型[][] 数组变量名 = new 类型[二维元素个数][一维元素个数]; 静态声明: 类型[][] 数组变量名 = {{元素列表} , {元素列表} , ...}; 二维数组的内存图 二维数组的遍历 使用循环嵌套,配合索引,遍历。 二维数组的求和 遍历求和

猜你喜欢

转载自www.cnblogs.com/yangzigege/p/8907605.html