语句


语句

三元操作符

三目运算符

  1. 条件表达式 ? result1 : result2

    表达式为true,结果就是result1,否则结果是result2

  2. 支持无限嵌套的 - 但是不推荐,可读性差

    m ? (表达式?result1:result2):result2

if…else..

  1. if语句单独使用场景

    if(条件){//成立
      //code...
    }
    
  2. {}可以省略的场景

    if(条件)
      //code...
      
    如果if{}中的代码只有1,那么{}可以省略,但是一定要缩进
    
  3. if…else…使用

    if(条件){
      //条件成立
    }else{
      //条件不成立
    }
    
    //如果语句仍然只有一行,{}还是可以省略的
    if(条件)
      //code
    else
      //code..
    
  4. 多条件分支if…else if…else..if … else…

    注意条件是互斥的

    if(条件){
      //条件成立
    }else if(条件){
      //条件不成立
    }else if(条件){
      //code
    }else{
       //code..
    }
    
  5. if..else语句可以无限嵌套使用

    if(条件){
      //条件成立
      if(条件){
                    
      }else{
                    
      }
    }else if(条件){
      //条件不成立
      if(条件){
      //条件成立
        }else if(条件){
          //条件不成立
        }else if(条件){
          //code
        }else{
           //code..
        }
    }else if(条件){
      //code
    }else{
       //code..
    }
    

习题

  1. 买奶茶,每第二杯半价,单价是10元.求总价.

    10 5 10 5 10
    
  1. 求某年某月最大天数

switch..case

没有if..else if..else灵活

语法:

switch(变量)/ /byte short int char String enum[枚举类型]
         //包装类型Byte Short Integer Character
case1:
 //code
 [break];
case2:
 //code
 [break];
 
case3:
 //code
 [break];
 
[default:
 //code..
 [break];]
}
  1. 当switch括号中的变量能够匹配到某个case后面的值的时候,那么就会进入到对应的case中去执行里面的程序

  2. 进入到某个case块中执行的过程中,只有遇到break语句才会跳出switch块.如果没有遇到break语句,那么程序会

    自动进入到下一个case块中去执行.

  3. default语句可以省略,也是可以随便放的,推荐放在末尾.如果switch括号中的变量没有匹配到任何的case后面的值

    的时候,那么就会进入到default

循环语句

while

  1. 属于后置循环 - 先判断循环条件是否成立,如果成立,则进入到循环体中,否则不执行循环.
  2. 使用场景:当不知道循环多少次,但是知道循环退出的条件的时候 - 优先选择while循环.

语法:

while(条件){

​ // 循环体…

}

package tech.aistar.day03;

/**
 * 本类用来演示: while循环
 * @date: 2021/7/19 10:53 上午
 */
public class WhileDemo {
    public static void main(String[] args) {
        //while可以代替for的使用
        //'a'-'z'
        char c = 'a';
        while(c <= 'z'){
            System.out.println(c);
            c++;
        }
        System.out.println("=====");
        //'A' - 'Z'
        int n = 65;
        while(n<=90){//退出的条件
            System.out.println((char)n);
            n++;
        }

        //1-10
        int m = 1;
        //死循环...
        while(true){
            //死循环的内部一定要有打破循环的语句 - break
            System.out.println(m);
            if(m==10) // 循环退出的条件
                break;
            m++;
        }
    }
}

练习

  1. 求俩个数的最大公约数

    思路:20 12 -> 4
        
        20 % 12 = 8
        12 % 8 = 4
        8  % 4 = 0    
    
  2. 十进制转换二进制

    
    
   

for循环

属于后置循环

  1. 单层for

    for(①表达式1;②表达式2;③表达式3){
      //④循环体
    }
    ①表达式1 - 循环过程中的变量的初始化操作.比如int i = 0;
            -  仅仅只会执行1.
    ②表达式2 - 循环退出的条件.比如 i<=10 
             - 至少执行1次
    ③表达式3 - 循环过程中,变量因子的变化.i++
             - 有可能是不执行,可能执行
              
    执行顺序①-[成立]---[成立]--.....
    

    怪异的写法

    for(;;){
      //死循环 - break打破循环的语句
    }
    三个表达式都是可以任意的省略不写,或者写到其他地方
    

    for循环的复合形态

    for(同时定义若干个变量;条件;表达式){
      //循环体...
    }
    
  2. 嵌套for循环,嵌套的层数不建议超过三层.嵌套越多,性能越低.

    2-1. 内外层无关 - 里面的for选中的使用可以单独执行.没有使用到外面for的循环的变量因子的.

    2-2. 内外层相关 - 里面的for使用到了外面for循环的变量因子的

  3. 练习 - 打印所有的三位数.三位数由数字1,2,3,4组成.但是不能出现重复的.

    每打印4个换一行

    package tech.aistar.day03;
             
    /**
     * 本类用来演示:
     * 练习 - 打印所有的三位数.三位数由数字1,2,3,4组成.但是不能出现重复的.
     *
     * 每打印4个换一行
     * @date: 2021/7/19 2:26 下午
     */
    public class ForExerciseDemo {
        public static void main(String[] args) {
            //定义一个计数器
            int count = 0;
            for (int x = 1; x <=4 ; x++) {
                for (int y = 1; y <=4; y++) {
                    for (int z = 1; z <=4; z++) {
    //                    System.out.print(x+""+y+z);
                        if(x!=y & x!=z & y!=z){
                            System.out.print(x*100+y*10+z+"\t");
                            count++;
    //                        if(count % 4==0){
    //                            System.out.println();
    //                        }
             
                            if(count == 4){
                                System.out.println();
                                count = 0;
                            }
                        }
             
                    }
                }
            }
        }
    }
    

do..while..

属于前置循环 - 无论循环条件是否成立,优先先进入到循环体中执行一次.

然后再进行判断条件,决定下一次是否再次进入.

do{

//循环体…

}while(条件);

break语句

  1. break可以跳出swtich块
  2. break可以打破它所在的那一层循环

continue语句

出现在循环体中

跳过本轮循环,继续执行下一轮循环.


文章作者: 码农耕地人
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 码农耕地人 !
  目录