java基础语法2
一:运算符和表达式
1.表达式
表达式是由常量变量对象方法调用和操作符组成的式子。根据运算符的不同,表达式相应的分为下面几种:算数表达式、关系表达式、逻辑表达式、赋值表达式,这些都属于数值表达式。
2.运算符
•算术运算符 进行基本的算数运算,如加法、减法、乘法、除法,在字符串中,‘+’可以作为连接符
n++ :先执行一次操作,再对n进行加1运算
++n :先对n进行加1运算,再执行一次操作
•赋值运算符 =
格式 :变量 = 表达式;从右往左进行运算
•关系运算符 :判断数据的大小,比较的结果是布尔值
'A' > 'B' 的结果是false,这时比较的是两个字符的ASCII值
•逻辑运算符: &与 、|或、!非 , 用来连接一个或多个条件,判断这些条件是否成立,其运算数都是布尔类型
&& 与 || :又叫做短路运算符,如果第一个表达式的值就可以决定表达式最后的结果,预算符右边的表达式就不需要进行运算了
•条件运算符 :
格式:布尔表达式?表达式1: 表达式2
布尔表达式的值为true时,返回表达式1的值,否则返回表达式2的值
•位运算符
&(与)、|(或)、 ^(异或)、<<(左移)、>>(右移)、>>>(无符号右移)、~(取反)
注意:位运算针对的是整数,运算的是数据的补码
可以利用&来判断是否是奇偶数。
运算符的优先级:
二:流程控制
顺序结构,选择结构,还有循环结构三种。
1.顺序结构
顾名思义顺序结构就是程序从上到下一条一条的按照顺序进行执行,没有语句的判断和跳转,直到程序结束。
2.选择结构
主要分为if语句和switch语句两种类型
If语句又可以分为以下几种:
① If(表达式){语句};
② If(表达式){语句1};else{ 语句2};
③ If(表达式1){语句1};
else if(表达式2){语句2};
else if(表达式3){语句3};
...........
...........
else {语句n};
④ 嵌套if语句:
If(表达式1){
If(表达式2){语句1};
else {语句2};
}
else{
If(表达式3){语句3};
else{语句4};
}
注意:在使用时if后面必须是一条语句,如果是多条语句,必须使用大括号将其组成复合语句。否则编译的时候可能会出现错误。
switch选择结构的格式如下:
switch(表达式){
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
.............
case 常量表达式n: 语句n;
default: 语句n+1;
}
注:
① default语句是可选的,他接受除了上面接受的值。
② case后面只能跟一条语句,如果有多条语句必须将其写成复合语句的形式。
③ switch判断语句只可以接受byte,short,char,int型,不能接受其他的类型 。
④ 一旦第一次遇到与case匹配的语句,就直接执行这条语句以及后面的所有语句。
⑤ case语句遇到break就会跳出,所以通常与break配合使用。
3.循环结构
for循环,while循环语句,do-while循环。
(1)for循环语句:
for(表达式1;表达式2;表达式3){循环体语句};
注:表达式1一般都是变量赋初值,表达式2是判断语句,表达式3是控制变量增减的语句。执行过程是先执行表达式1,然后判断表达式2,表达式2成立的话再执行循环体语句,然后判断表达式3.直到表达式2条件不成立时跳出循环。循环体语句必须是一条语句,如果是多条语句必须用{ }括起来,组成符合语句。
(2)while循环语句格式如下:
while(表达式){
循环语句;
}
while语句一般是在不知道循环次数的情况下使用,执行过程是先判断表达式,当表达式成立时再执行循环体语句,如果表达式不成立,则直接跳出循环。一般变量赋值在while语句之前给出。
(3)do-whlle循环语句格式如下:
do{
语句;
}while(表达式);
do-while语句无论表达式是否成立都会执行一次,也就是先执行后判断。
总结:当已知循环的次数时优先选择for循环,当循环的次数不知,而且循环条件比较明显时用while循环,当无论循环条件是否成立,循环体语句至少被执行一次时,选择do-while。
4、break与continue关键字:
(1)break关键字不仅可以用于switch语句,还可以用于循环语句,当满足某个条件时直接跳出循环。
(2)continue关键字可以用于循环语句,经常与if配套使用,当满足if条件时,就不再执行continue后面的语句,而是进入下一次的循环。
三:数组
1.数组定义:存储固定大小的同类型元素
数据类型[] 数组名 = new 数据类型[元素个数或数组长度];
例如:int[]x=new int[123]//创建一个长度为123的int类型的数组 ,第一个变量的名称为x[0],第二个变量的名称为x[1]
创建初始化和操纵数组
package com.number1.com; public class TestArray1 { public static void main(String[] args){ double[] x={1.1,2.1,3.1,4.1,5.1}; //打印所有的数组元素 for (int i=0;i<x.length;i++){ System.out.println(x[i]+" "); } //计算所有的数组元素和 double sum=0; for (int i=0;i<x.length;i++){ sum+=x[i]; System.out.println("总和为"+sum); } //查找最大元素 double max=x[0]; for(int i=1;i<x.length;i++){ if (max < x[i]) max=x[i]; } System.out.println("最大值为"+max); } }
1.1 2.1 3.1 4.1 5.1 总和为1.1 总和为3.2 总和为6.300000000000001 总和为10.4 总和为15.5 最大值为5.1 Process finished with exit code 0
*数组作为函数的参数传递给方法
*数组作为函数的返回值
*多维数组:数组的数组
String str[][]=new String[3][5]
多维数组的动态初始化:type[][] typeName=new type[typeLength1][typeLength2]
Arrays类
java.util.Arrays类能方便的操纵数组,他提供的方法都是静态的,
功能:
具有以下功能:
- 给数组赋值:通过 fill 方法。
- 对数组排序:通过 sort 方法,按升序。
- 比较数组:通过 equals 方法比较数组中元素值是否相等。
- 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
序号 方法和说明 1 public static int binarySearch(Object[] a, Object key)
用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。2 public static boolean equals(long[] a, long[] a2)
如果两个指定的 long 型数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。3 public static void fill(int[] a, int val)
将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。4 public static void sort(Object[] a)
对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。