Java基础04-语句

一.运算符operator的优先级priority:
 a.优先级比较: && 高于 ||
 b.建议使用"( )"来区分优先级
 
二.语句
 1.选择结构
  a.if .. else if .. else
   根据if中的条件进行判断, 选择执行某一条分支
   如果if中的条件未满足, 就会判断else if中的条件
   如果所有条件都未满足, 就会执行else中的语句
   注:
   if() {
   
   }else if {
   
   }else {
   
   }
   
   if() {
   
   }else {
   
   }
   
   if(){
   
   }
   
  b.switch语句
   通过一个变量, 确定从哪一个case开始执行, 一旦确定, 会从指定的case向下执行
   如果执行某个case之后, 不想继续执行下面的case, 可以使用break中断
   如果所有case都未满足条件, 会执行default选项
   switch最初只能支持int类型(byte,short,char也可以), JDK5之后可以支持enum, JDK7之后可以支持String
   注:
    switch(month) {
    case 3:
    case 4:
    case 5:
     System.out.println("现在是春季!"); 
     break;
    case 6:
    case 7:
    case 8:
     System.out.println("现在是夏季!"); 
     break;
    case 9:
    case 10:
    case 11:
     System.out.println("现在是秋季!"); 
     break;
    case 12:
    case 1:
    case 2:
     System.out.println("现在是冬季!"); 
     break;
    default:
     System.out.println("兄弟,你是从火星来的吧!");
    } 
   
 2.循环结构
  a.while
   先判断条件, 如果满足则执行循环体, 循环体执行结束后再次判断, 直到条件不满足时退出
   注:
    while() {
    
    }
    
  b.do .. while
   先执行循环体, 然后判断条件, 条件满足则继续执行循环体, 直到条件不满足时退出
   注:
    do {
    
    }while(); //注意:有分号
    
   c.for语句
   括号中可以写3条语句
   第一条语句在循环开始之前执行, 只执行一次
   第二条语句是循环条件, 如果为true就执行循环体, 为false则退出
   第三条语句在每次循环体执行结束之后运行
   注:
   1.
    for(;;) { //这样写,是无限循环!
    
    }
    等价于:
    for(;true;) { //这样写,是无限循环!
    
    }
    
   2.for中语句的执行顺序:

     语句1->判断语句2->语句2若是true,则执行语句4->执行语句4->判断语句2->语句2若是true,则执行语句4->......
    for(语句1;语句2;语句3) {
     语句4
    }
   
  d.循环控制
   continue: 跳出本次循环, 继续执行下一次
   break: 结束循环, 执行循环外的代码
   return: 结束方法, 循环外的代码也不会再执行了,若使用在main主方法中,则程序结束!
   注:
   outer:
    for() {
     for() {
      break outer;  //直接会跳出两层循环
     }
    }
   
三.数组
 1.什么是数组
  数组是一个类型一致, 长度不可变的容器
  
 2.定义方式
  int[] arr1 = {1, 2, 3};    // 定义数组, 指定元素, 这种方式只能用在给一个变量赋值的时候,
  注:
   不能写成这样的格式:
    int[] arr1 ;
    arr1= {1, 2, 3};
       
  int[] arr2 = new int[]{1, 2, 3}; // 定义数组, 指定元素, 这种方式在任何情况下都能使用
  int[] arr3 = new int[3];   // 定义数组, 指定长度为3, 其中所有元素都是默认值. 基本数据类型的默认值都是0 
  
  3.遍历数组
  使用length属性可以获取数组长度, 定义循环, 从0循环到length-1, 每次获取其中一个元素
  注:
   int [] a = new int[size]; //这边的size类型,只能是int类型(byte,short,char也可以),但是long不可以!
   
  
 4.常见异常
  ArrayIndexOutOfBoundsException: 访问数组索引越界时出现
  NullPointerException: 数组引用为空时出现
  
 5.多维数组:
  数组的数组
  分配空间时,必须先分配高维,再分配低维
  注:
   int[][] arr = new int[3][];
   arr[0]=new int[3];
   arr[1]=new int[4];
   arr[2]=new int[5];
  也可定义如下格式:
   int[][]arr = new int[3][4]; //新建一个包含3个元素的二维的数组,该数组的每个元素又是一个包含4个元素一维的数组
   
四.参数传递:
 基本类型: 改变形参的值,不会影响到实参
 引用类型: 通过形参的改变,实参也会受影响.因为都是指向堆中的同一地址的数据!
 
 (内存图)
  栈内存: 每运行一个函数,都会开辟一块栈内存,用来存放函数中定义的变量.
  堆内存: 用来存放一些引用数据类型的数据
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章