您的位置:首页 > 编程语言 > Java开发

java学习笔记(三)

2016-03-28 14:35 399 查看
1.while循环

while(布尔表达式){

//循环体

}

例子:

public static void main(String[] args) {

// TODO Auto-generated method stub

int i=0;

while(i<54){

System.out.print(i++%4);

if(i%4==0){

System.out.println();

}

}

System.out.println();

doWhile();

}

2.do...while循环

do{

//循环体

}while(布尔表达式);

例子:

public static void doWhile(){

Scanner console=new Scanner(System.in);

int balance=1000;

int bet;

do{

System.out.print("输入押注:");

bet=console.nextInt();

}while((bet<=0)||(bet>balance));

System.out.println(bet);

}

例子:while和for

public static boolean prime(int n){

for(int i=2;i<=n/2;i++){

if(n%i==0)

return false;

}

return true;

}

public static boolean prime0(int n){

int m=2;

while(m<=n/2){

if(n%m==0){

return false;

}

m++;

}

return true;

}

3.数组

3.1数组的声明

int[] ary;

int ary[];//不推荐这种写法

3.2数组的初始化

3.2.1动态初始化:必须指明数组的长度

int[] ary=new in[10];

int[] ary=new int[]{1,2,3,4,5};

3.2.2静态初始化:只能在声明数组时使用

int[] ary={1,2,3,4,5};

3.2.3数组成员自动初始化为“零”值

“零”值:0, 0.0, '\u0000', false, null

3.3数组的访问

3.3.1使用ary.length属性获取数组长度

3.3.2数组的下标(index)从0开始,最大值是length-1

3.3.3可使用下标访问指定的元素:

int a=ary[2];//读取

ary[2]=8;//写入

3.3.4如果越界访问会出现异常(错误)

ArrayIndexOutOfBoundsException

例子:

public static void main(String[] args) {

// TODO Auto-generated method stub

int[] ary;

ary=new int[]{1,2,3,4,5};

int[] ary2={1,2,3,4,5};

int[] ary3=new int[10];

//数组的零初始化

System.out.println(ary3[3]);//0

boolean[] b=new boolean[10];

System.out.println(b[3]);//flase

char[] c=new char[10];

System.out.println(c[3]);//不可见字符

System.out.println(c[0]+",");

System.out.println((int)c[3]);

//数组长度

System.out.println(ary.length);

//数组访问

System.out.println(ary[-1]);

}

3.4数组的扩展问题

3.4.1java数组大小固定

3.4.2利用数组复制的方法可变通地实现数组扩展

3.4.3System.arraycopy()可以复制数组

3.4.4Arrays.copyOf()可以简便地创建数组副本

3.4.5创建数组副本的同时将数组长度增加就变通地实现了数组的扩展

例子:

public static void main(String[] args) {

int[] ary=new int[]{1,2,4,5};

int[] ary2=ary;//数组的赋值,并不是数组的复制,ary,ary2是一个数组

ary[1]=3;

System.out.println(ary2[1]);//3

//数组的复制,art,ary3不是一个数组,内存中存在两个内容一样的数组

int[] ary3=new int[ary.length];

for(int i=0;i<ary.length;i++){

ary3[i]=ary[i];

}

int[] ary4=new int[ary.length];

//System.arraycopy()的效率比上面的for循环高很多,实现数组复制

System.arraycopy(ary, 0, ary4, 0, ary.length);

//数组的动态扩展

int[] ary5=new int[ary.length+1];

System.arraycopy(ary,0,ary5,0,ary.length);

ary=ary5;//ary变长了实现了动态扩展

int[] ary6=Arrays.copyOf(ary, ary.length+1);

//统计指定文字出现的所有位置

String str="今天学习数组和数组的动态扩展";

char c='数';

int[] loc={};//空数组,数组长度为0

for(int i=0;i<str.length();i++){//0---13

char ch=str.charAt(i);

if(ch==c){

loc=Arrays.copyOf(loc, loc.length+1);//数组的自扩展

loc[loc.length-1]=i;//数组得到了扩展

}

}

for(int i=0;i<loc.length;i++){

System.out.println(loc[i]);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: