01 分支结构与循环控制以及数组

if分支结构

  • 语法结构
    if (条件表达式){  // 条件表达式结果必须是一个boolean型
       语句块1;
    } [else{
       语句块2;
       }]
    说明:当语句块1或语句块2只有一句程序时,可以省略{}
    • 多重分支语句结构,适合判断有多种情况的时候。
      if (条件1){
        语句块1;
         }else if (条件2){
          语句块2;
         }⋯⋯
         }else if (条件N){
         语句N;
        }[else{
       语句块N+1;
      }]

if分支的嵌套

在一个if分支语句中,包含另一个完整的if语句即选择嵌套。
if (条件表达式1){
   语句块11;
   if (条件表达式11){
     语句块12;
   }[else{
     语句块13;
   }]
}[else{
  语句块21;
    if (条件表达式21){
      语句块22;
    }[else{
      语句块23;
    }]
 }]

switch分支结构

  • switch语句,多分支选择语句,根据表达式的值,来执行多个操作中的一个。是多重分支结构的一种特殊形式。(switch能实现的功能,多重分支一定能实现)
  • 语法格式
     switch (表达式){
      case value1:
       语句序列1;break;//看看break就知道,至多进到一种case里就会跳出
       … …
       case valueN:
        语句序列N;break;
     [ default : 缺省语句;]
    }
  • 表达式可以是byte、short、int、char、枚举类型。JDK 7以后,可以使用String类型
  • case语句后面只能使用常量表达式且值不能重复
  • case分支如果没有break语句,则继续执行下一个case后的语句。(case穿透)
    注:有时适当合理应用case穿透,可以解决问题。
  • 当表达式的值与任一case的值都不匹配,将执行default语句;若没有default则跳出switch。

循环控制

  • 循环结构作用是反复执行一段代码,直到条件表达式不成立为止。
  • java提供3种循环,任何一种循环都包含循环三要素:1循环变量初始化2循环条件3变量改变
  • while结构格式
      while(条件表达式){
         语句序列;
      }
  • 首先检查条件表达式是否成立,当为true时会反复执行循环体。如果一开始条件就不成立,那么循环体一次也不执行。
    案例:计算需要多少年才能存够一定数量的退休金。假设每年存入4000元,年利率为0.8%,目标值为50000元。
  • do-while语句格式
      do{
        语句序列;
       } while(条件表达式);
  • 首先执行循环体, 然后再检查条件表达式, 若结果为true则循环执行语句序列, 直到条件表达式的结果为false。
    while循环最少执行0次,do-while循环最少执行1次。
    案例:猜字母游戏。提示用户输入字母,如果正确则输出“right”,程序结束;如果不正确,则输出“too low”或“too high”,然后提示再次输入,直到输入正确为止。
    当按下Enter时,实际上发送两个键值:一个回车\r(13),一个换行\n(10)
  • for语句格式
      for(初始表达式; 条件表达式; 迭代表达式) {
         语句序列;   //循环体
       }
  • 首先执行初始表达式,然后判断条件表达式是否成立,如果为true则执行循环体中的语句,最后执行迭代部分,至此完成一次循环;再重新判断条件表达式,决定是否进行下一轮循环。
    可以在for语句的初始化部分声明变量。通常用来执行循环次数确定的循环情况。
     for循环的变体,两个循环控制变量:for(i=1,j=5;i<j;i++,j–){}
     缺失部分要素的for循环语句
    没有迭代部分:for(i=0;i<10;){}
    没有初始化部分:for(;i<10;){}
     无限循环:for( ; ; ){ }
     没有循环体的循环:for(i=1;i<5;sum+=i++){}

增强for循环遍历数组(集合)

增强型for循环使用起来比较方便,代码也比较简单,如果只是操作集合中元素的而不使用索引的话,建议用此方法。

如果需要使用索引进行其它操作的话,建议用普通for循环。

增强for循环必须有被遍历的目标(如集合或数组)。

增强for循环不能获取下标,所以遍历数组时最好使用普通for循环。

  • 语法格式
    for(数据类型变量名 :被遍历的集合或数组) {执行语句}
    即for(int i:array){ 输出语句 }

  • 例: int array[] = { 1,2,3,4,5,6,7,8,9};

    // 增强for循环  
    
    for (int item : array) {  
    
        System.out.println(item);        }    
    
    // 普通for循环
    
    for (int i = 0; i < array.length; i++)  
    
        System.out.println(array[i]);   
    

流程控制语句

  •  continue语句用来结束本次循环, 跳过循环体中下面尚未执行的语句,开始新的一轮循环。
     案例:使用continue计算100以内的奇数的和。
  •  break语句
      在switch语句中,break语句用来跳出switch语句;
      循环结构中,使用break语句可以退出当前循环;

数组

  •  数组是多个相同类型变量的集合。
      数组优点:
       1、能够减少变量的数量;
       2、配合循环可以方便的遍历多个变量或者对变量进行操作。
     缺点:1、由于数组中元素的内存地址是连续的,增删元素时效率低
       2、数组不能存储大量数据,因为很难找出一个合适的连续的内存空间。
  • java中的数组表现为对象,并且数组对象中提供了属性和方法。
  • 通过数组的索引来访问数组元素,包括为数组元素赋值和取出数组元素的值。Java的数组既可以存储基本类型的数据,也可以存储引用类型的数据(只要所有的数组元素具有相同的类型)。当存储引用类型的数据时,即存储的是java对象时,实际存储的是对象的内存地址。元素在数组中的地址是连续的,对象的内存地址不一定是连续的。
  • 数组中首元素的内存地址作为整个数组的内存地址。
  • 声明数组
    静态初始化语法格式:
       数据类型[] 数组名 = new 数据类型[]{元素1,元素2,········};
    动态初始化语法格式:
        数据类型[] 数组名 = new 数据类型[长度];
       访问数组元素:数组名[i];
       获取数组长度:数组名.length;
  • 数组中元素的默认值:数值类型默认为0,布尔类型默认为false,字符类型为空字符。
    注:要区分开数组引用变量和数组对象
  • 数组对象中的length成员的值是数组中元素的数量。

二维数组

  • 二维数组其实是一个特殊的一维数组,特殊在这个一维数组当中的每一个元素都是一个一维数组。二维数组中查询第一个元素的长度:a[0].length
    在这里插入图片描述
  •  二维数组是一维数组的列表。即其中每个元素都是一个一维数组。下标由两个数组成。
     语法格式:
    type array[][] = new type[第i个一维数组][ 第i个一维数组的第j个元素]; //分配空间时,可以不确定col
    type[][] arrayName;
    type[] arrayName[];//了解
    如,a[0][0]为100
  • 对于a[3][100]来说,a[3]是一个整体。I100]是前面a[3]直接结束的结果然后再下标100.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值