Java 学习第四章之流程控制和数组

每一门计算机语言都提供几种语法结构,顺序结构、选择结构、循环结构。Java 语言也能提这样的几种语法结构。
顺序结构:代码一行一行的从上到下的执行。
选择结构:通过判断条件是否满足,来有选择性的执行代码。
循环结构:满足一些条件循环的执行代码。


选择结构:Java 语言中提供两种操作,一种是if..else if 、另一种是 switch。
if ()里是一个可以返回是true|false的表达式或是结果,只要满足条件就会执行大括号中的代码。
// 情况一:
  int a=5;int b=4;
if(a>b){
 System.out.println("a大于b");
}
// 情况二:
if(a>b){
 System.out.println("5大于4");
}else if(a<b){
 System.out.println("5小于4");
}
// 情况:
if(a>b){
 System.out.println("5大于4");
}else if(a<b){
 System.out.println("5小于4");
}else{
 System.out.println("其他情况");
}
有时,可以把{}省略掉,但最好不要这么做,会影响可读性。
switch ()里是一个数值型数据,long 除外,可以是int char byte short ,C#语言可以 跟String.
      char c='b';
switch (c) {
case 'a':
System.out.println("a");
break;
case 'b':
  System.out.println("b");
  break;
case 'c':
  System.out.println("c");
  break;
default:
System.out.println("default");
break;
}


       注:这是switch最基本的格式,如果把break删除,就会到达满足条件后,其他的都不做判断,直接输出。


 循环结构:Java中提供 while、do..while、for、在JDK 1.5时,提供了增强for既foreach. 每一种循环都遵守,初、判、变 这几个生命周期。


 初:初始化变量,为变量赋值。
 判:判断条件是否满足,进到循环中。
 变:不断的改变变量的值,要求不断的满足条件,直到循环结束。


  while ()后跟一个返回true的条件,条件为true时,执行{}中的内容,最后改变其变量,直到不()中的条件不满足条件,循环退出。
int num=10;
while (num>0) {
 System.out.println(num);
  num--;
 }


 do..while 后先跟一个{} 然后在改变变量的值,while 后()添加循环条件,特点,不管条件满足不满足都会运行一次。
 
     do {
  System.out.println(num);
  num--;
     } while (num>0);


 for 大部分的循环都可以使用for来替换while 或 do..while。语法更加简洁。
      for(int i=10;i>=1;i--){
  System.out.println(i);
}
控制循环结构:在Java语言中定义了 break continue return 来处理循环结构。
  break:
   用法一,跳出循环体,结束本次循环。
       for(int i=10;i>=1;i--){
  System.out.println(i);
  if(i==5){
  break;
  }
  }
    当i=5时,跳出循环体,所以会输入 10,9,8,7,6,5 这几个数据。


   用法二,定义跳转标签,跳出所有循环体。标签名:
           outer:
for(int i=10;i>=1;i--){
 
  for(int j=5;j>=0;j--){
 System.out.println("i="+i+"\tj="+j); 
  if(j==4){
  break outer;
  }
  }
   运算结果:
          i=10 j=5
   i=10 j=4

 continue:和break 有点类似,只是结束本次循环,并执行下次循环,并不跳出循环体。
 
   用法一:忽略本次循环,进入下次循环。
     for(int i=10;i>=1;i--){
  System.out.println(i);
  if(i==5){
  continue;
  }
}
   用法二:定义标签,跳转到循环体外,忽略本次循环,进入下次循环。
          outer:
for(int i=2;i>=1;i--){

 for(int j =0;j<5;j++){
 System.out.println("i="+i+"\tj="+j);
 if(j==3){
 continue outer;
    }  
 }
  }
        输出结果:
        i=2 j=0
i=2 j=1
i=2 j=2
i=2 j=3
i=1 j=0
i=1 j=1
i=1 j=2
i=1 j=3
   ruturn:并不是结束一个循环体,而是结束一个方法。
  
for(int i=2;i>=1;i--){

 for(int j =0;j<5;j++){
 System.out.println("i="+i+"\tj="+j);
 if(j==3){
 return;
    }  
 }
  }


   输出结果:
    i=2 j=0
i=2 j=1
i=2 j=2
i=2 j=3


return 跟可以跟对象,变量、常量、表达式,这些在以后讲方法时会说到。




数组:存储相同数据类型的数据结构。
  特点:一个数据一旦定义,他的内存空间就固定不变了,长度也不变了,即便是把数据清空,内容大小一保持不变。


    数据类型 [] 变量名 = new 数据类型[]{xx,xx};   int [] array=new int[]{12,23,32,33,41,9,'c'};
数据类型 [] 变量名 = new 数据类型[size];      int [] arraya=new int[3];
数据类型 [] 变量名 = {xx,xx}           int [] arrayb={1,34};
 
数组常用方法。


  访问数组中的元素,只能通过下标来访问,如 变量名[下标]




  int [] array=new int[]{12,23,32,33,41,9,'c'}; // 存放的数据可是以数据类型的子类。 

  for(int i=0;i<array.length;i++){
System.out.println(array[i]);
  }


  想要清空一个数据可以使用array=null; 通知,GC 这个数组没有引用了。


 在 JDK 1.5 时,新增了 foreach 循环。可以使用foreach 操作数组或集合。 但不能修改数据。
  for (type variableName:array|collection){ variableName}
  for (int i : array) {
  System.out.println(i);
   }


  当定义了一个数据并声明了内存大小时,就会在内存中创建两块地址,一个是引用变量地址的存储位置,另一个是存储内容的地址。
  如 int [] a = {1,2,3};
     
     int [] b = {1,2,3,4};
  
   a 存储在 栈中,而{1,2,3} 则存储在堆中,要想使用此数组 就必须使用变量名a 操作 堆中的数据。


   
 
  
  也可以把b=a,这 样就会产生新的数据。
 
   






    那么此时,b的长度 也是3了。而 {1,2,3,4} 没有变量在引用他了,只能等待GC 回收,释放内存。


    操作数组,Java 提供了一个工具类。java.util.Arrays; 可以很方便的操作数组,有常用的排序,查找,复制等,具体请参看API.















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值