语句:
If switch do while while for
这些语句什么时候用?
1)、当判断固定个数的值的时候,可以使用if,也可以使用switch。
但是建议使用switch,效率相对较高。
switch(变量){
case 值:要执行的语句;break;
…
default:要执行的语句;
}
if语句 三种格式:
1、if(条件表达式)
{ //如果满足就执行不满足就结束
执行语句;
}
2、if(条件表达式)
{ //如果满足条件就执行“执行语句1”,否则的话执行“执行语句2”
执行语句1;
} else{
执行语句2;
}
这种if语句和三元运算符的区别:
三元运算符可以称之为if语句的简写形式
三元运算符,是一种运算符号,也就是说每次执行后,必须有结果。
if...else是语句,只是控制流程,执行后不一定有结果
if...else可以里面有语句,并输出结果,三元运算符不可以。
3、if(条件表达式)
{ //代表的是多重条件时满足哪一个条件就执行该条件的执行语句否则执行else下边的执行语句
执行语句;
}
else if (条件表达式)
{
执行语句;
}
……
else
{
执行语句;
}
如果if语句后面不加{},只能控制一条语句,加{}是控制整个{}里面的语句。
例子:根据日期判断季节!
package dome1;
class month{
public static void main(String[]args)
{
int a =3;
if(a < 0 || a > 12)
System.out.println("输出值无效");
else if(a >= 3&& a <= 5)
System.out.println("春天");
else if (a >= 6&& a <= 8)
System.out.println("夏天");
else if (a >= 9&& a<=11)
System.out.println("秋天");
else
System.out.println("冬天");
}
}
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
重载的特点:
与返回值类型无关,只看参数列表。参数个数和参数类型,参数的顺序
重载的好处:
方便于阅读,优化了程序设计。
重载示例:
//返回两个整数的和
int add(int x,int y){return x+y;}
//返回三个整数的和
int add(int x,int y,int z){return x+y+z;}
//返回两个小数的和
double add(double x,double y){return x+y;}
数组
数组:同一种类型数据的集合.其实数组就是一个容器,它的好处是可以从0开始编号,方便操作这些元素
定义数组的格式:
格式一:
元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
示例:int[] arr = new int[5];
格式二:
元素类型[] 数组名 = new 元素类型[]{元素,元素,……};
int[] arr = new int[]{3,5,1,7};
int[] arr = {3,5,1,7};
内存机构
java运行时需要在内存中分配空间,为了提高效率,对空间进行了不同区域的划分。
栈内存
用于存储局部变量,当数据使用完,所占空间会自动释放
堆内存
1,数组和对象,通过new建立的实例都存放在堆内存中
2,每一个实体都有内存地址值
3,实体中的变量都有默认初始化值
4,实体不在被使用,会在不确定打的时间被垃圾回收期回收
数组异常:
1,操作数组时,访问到数组中不存在的角标,会发生角标越界异常。
ArrayIndexOutOfBoundsException
举例 int[] arr = new int[3];
System.out.println(arr[3]);
,2,当数组不在指向某个实体时,如果继续访问,就会发生空指针异常。
NullPointerException
举例 int[] arr = new int[3];
arr = null;
System.out.println(arr[0]);
数组的操作:
1、遍历
for (int x=0;x < arr.length ;x++ )//length代表长度,元素个数
{
System.out.println("arr["+x+"]="+ arr[x]);
}
实例:倒序打印数组
package com.javabase.test;
public class Demo11 {
public static void main(String[] args) {
int[] arr = {3,2,1,7,6,5};
diaohuan(arr);
bianli(arr);
}
public static void diaohuan(int[] arr){
for (int a = 0, b = arr.length-1; a < b; a++,b--) {
int sum = arr[a];
arr[a] = arr[b];
arr[b] = sum;
}
}
public static void bianli(int[] arr){
for (int x = 0; x < arr.length; x++) {
System.out.println(arr[x]);
}
}
}
实例:从小到大排列
package com.javabase.test;
public class Demo5 {
public static void main(String[] args) {
int[] arr= {12,2,6,13,7};
xuanzi(arr);
bianli(arr);
}
public static void xuanzi(int[] arr){
for (int x = 0; x < arr.length-1; x++) {
for (int y = x+1; y < arr.length; y++) {
if (arr[x]>arr[y]) {
/*int sum = arr[x];
arr[x]=arr[y];
arr[y]=sum;*/
fanhui(arr, x, y);
}
}
}
}
public static int fanhui(int[]arr,int a,int b){
int sum = arr[a];
arr[a]=arr[b];
arr[b]=sum;
return sum;
}
public static void bianli(int[] arr){
for (int a = 0; a < arr.length; a++) {
System.out.println(arr[a]+" ");
}
}
}
package com.javabase.test;
public class Demo5 {
public static void main(String[] args) {
int[] arr= {12,2,6,13,7};
xuanzi(arr);
bianli(arr);
}
public static void xuanzi(int[] arr){
for (int x = 0; x < arr.length-1; x++) {
for (int y = x+1; y < arr.length; y++) {
if (arr[x]>arr[y]) {
/*int sum = arr[x];
arr[x]=arr[y];
arr[y]=sum;*/
fanhui(arr, x, y);
}
}
}
}
public static int fanhui(int[]arr,int a,int b){
int sum = arr[a];
arr[a]=arr[b];
arr[b]=sum;
return sum;
}
public static void bianli(int[] arr){
for (int a = 0; a < arr.length; a++) {
System.out.println(arr[a]+" ");
}
}
}
实例:冒泡排序
package com.javabase.test;
public class Demo5 {
public static void main(String[] args) {
int[] arr= {12,2,6,13,7};
xuanzi(arr);
bianli(arr);
}
public static void xuanzi(int[] arr){
for (int x = 0; x < arr.length-1; x++) {
for (int y = x+1; y < arr.length; y++) {
if (arr[x]>arr[y]) {
/*int sum = arr[x];
arr[x]=arr[y];
arr[y]=sum;*/
fanhui(arr, x, y);
}
}
}
}
public static int fanhui(int[]arr,int a,int b){
int sum = arr[a];
arr[a]=arr[b];
arr[b]=sum;
return sum;
}
public static void bianli(int[] arr){
for (int a = 0; a < arr.length; a++) {
System.out.println(arr[a]+" ");
}
}
}