OCJP 学习路上 心得之for ,switch

时间:2024-04-11 10:50:11

距离上一次写博客 ,已经好长时间了。最近工作太忙了。晚上还要看OCJP的书,为考证努力。虽然都是些基本内容 ,但是梳理一遍 还是发现以前自己在学校学习的java不深。
废话不多说了。来看正文。

for

也许,读者看见这个 会好奇 ,这个我会不会用? 我超级会用的。是的 以前 我也超级会用。
先看 for语句 结构

for/*Initianlization*/;    /*Condition*/ ;     /* Iteration*/   ){
}

这个呢有几点值得注意的。

  1. 括号里面的三个部分 都可以省略都省略的话,就是一个死循环也可以省略其中任何一个 或两个 ,这些都是合法的。
  2. Initianlization 声明和初始化 0个,1个,或者同一个类型的多个变量 用 , 隔开(声明也可以放在for语句上面)
  3. Condition: 条件表达式 这个只能有一个 或者省略
  4. Iteration: 迭代表达式 这个可以是任何语句(你可以写任何无关的代码在这里),不一定 递增,递减的 可以省略
  5. for 语句里面声明的变量 ,在for语句以外 不能使用。这个编译器都会提示的

例子

for (int i = 0, y = 1;(y < 10) & (i > -10); y++, i--, System.out.println("one"), System.out.println("two")) {
            System.out.println("符合条件");
        }

上面这段代码是合法的。运行结果
OCJP 学习路上 心得之for ,switch

switch

switch呢,也有比较一些注意点。用大家肯定 都会用的,就是不怎么知道细节而已。
switch语句格式

   switch (variable){
          case variable1:
              //代码  可选break
          case variable2:
           //代码 可选 break
          default:
              //代码
      }

几点注意点

  1. variable 必须是**枚举,byte, short ,char,int ,String ** 其他类型都是不可以的。
  2. variable1 和 variable2 这些必须是字面值(就是case 10这样的),或者编译期变量(就是程序运行前编译,编译器要能知道 这个值的确切值,而不是程序运行时候 才知道)
  3. byte, short ,char,int,这四个类型是可以混合使用的。看下面例子
  int b = 10;

        final int anint = 11;
        final char aChar = 'b';
        final short anShort = 16;
        final byte anByte = 1;

        switch (b) {
                //byte
            case anByte:
                System.out.println(10);
                break;
            //char
            case aChar:
             //short
            case anShort:
                //int
            case anint:

        }

这是合法的。

重点重点

  1. 匹配的case语句只是进入case代码行的入口但是除非遇见break语句,否则匹配的case语句并不是程序执行的唯一的case语句。就是执行case入口以后,会继续向下执行,直到遇到break语句或到达switch代码块的结尾。 看下面例子
   int a = 3;
        switch (a) {
            case 1:
                System.out.println("1");

            case 2:
                System.out.println("2");

            case 3:
                System.out.println("3");
                //注意 这里没有加break
            case 4:
                System.out.println("4");
                //如果这里 加上break  那么运行结果就是 3  4 
            case 5:
                System.out.println("5");

            default:
                System.out.println("default");
        }

运行结果:
OCJP 学习路上 心得之for ,switch

可以看见 没有break语句,会一直执行到末尾。

  1. 在switch语句中,default代码块可以放在任意地方因此当前面没有匹配的case时候,会进入default代码块,如果default代码块没有使用break。则程序会继续执行 。直到遇到break语句或到达switch代码块的结尾。
    这个呢 就是 我们只需要 把 default语句 看成普通的case语句 就可以了
    例子
        int a = 10;//这里变成10  下面 没有和他匹配的语句
        switch (a) {
            case 1:
                System.out.println("1");

            case 2:
                System.out.println("2");

            default://提到前面来
                System.out.println("default");
                
            case 3:
                System.out.println("3");
                //注意 这里没有加break
            case 4:
                System.out.println("4");
                 break;
            case 5:
                System.out.println("5");

        }

运行结果:
OCJP 学习路上 心得之for ,switch

ok 完结,下一篇我要写Android录屏 传送直播的 这星期写