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]);
}
}
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]);
}
}
相关文章推荐
- Spring MVC Spring MyBatis 整合 - 快速上手
- JAVA基础-多态
- Properties类 of Java 的使用
- Spring Security 学习笔记-信道过滤器
- java.util.HashMap.remove()方法实例
- java 抽象工厂模式
- 通俗的解释JAVA wait/notify机制
- 1分钟教会你SpringMvc 文件上传
- java 简单工厂模式
- java 静态语句块(static block)
- JVM--内存管理模型
- 深入Java集合系列之四:ConcurrentHashMap
- myeclipse2013 git插件安装
- Eclipse设置文件默认打开方式
- java--vo
- java反射机制续
- 在Eclipse中创建Maven多模块工程
- Constants in java
- java LinkedList 的实现
- JAVA内存管理常识