zoukankan      html  css  js  c++  java
  • 22天学习java基础笔记之day03

    Day03 语句(顺序 选择 判断 循环)

    一、顺序结构

            (1)程序从上往下,从左往右依次执行。

    二、判断结构(if语句)

    1、第一种格式

            if(条件表达式--只有两个结果(true/false)){

                    执行语句;

            }

            A:执行流程

                    首先判断条件表达式,如果值为true,那么就执行if语句所控制的语句体。

                    如果为false,就不执行语句体。

            B:条件表达式无论简单(a>b)或者复杂((a+b+c)>(a+b)),其结果是boolean值。true或者false。如果是其他的值,则错误。

            注意问题:

                    A:if(条件表达式)其后没有分号。

                            一般来说,有"{}"就没有";",有";"就没有"{}"

                    B:if语句所控制的语句如果是一条语句,我们可以不写大括号;

                       如果控制的是两条以上的语句,必须加大括号。

                       if语句的控制体没有加大括号是其后跟的一条语句。

                       建议:永远加上大括号。避免不必要的错误。

    2、第二种格式

            if(条件表达式){

                    执行语句1;

            }else{  //else 否则的意思

                    执行语句2;

            }

            A:执行流程

                    首先判断条件表达式,如果值为true,那么就执行语句1。

                    如果为false,就执行语句2。

            B:if可以单用,第一种格式。

                     else必须有if

            C:发现if语句的第二种格式和三元运算符相似。

                    区别:

                            (1)三元运算符是if语句的简写形式。

                            (2)所有的三元运算符都可以用if语句改写。反之不行。

                            为什么?因为三元运算符是一个运算符,计算完后,必有结果。

    3、第三种格式

            if(条件表达式){

                    执行语句1;

            }else if (条件表达式){

                    执行语句2;

            }

            ……

            else{

                    执行语句n;

            }

            A:else可以省略,但是不建议。

                    (1)它是第三种格式的组成部分。

                    (2)你有可能没有判断完所有的情况,我们就可以使用else来完成特殊情况。

            B:执行流程

                    虽然格式很长,但是,它整体只是一条语句。

                    不断的判断,只要有满足条件的条件表达式,就执行该判断处控制的语句体,执行完后。语句结束。

                    当都不满足时候,执行else。

            C:if后面必须有条件表达式。

                            else后面没有条件表达式。

            D:if语句的嵌套

                            if语句里面的语句体还是if语句。

    4if的应用

            A:给定一个数值,请打印出对应的星期?。

            B:一年有四季,每季三个月

                       春:3,4,5

                       夏:6,7,8

                       秋:9,10,11

                       冬:12,1,2

                       给定一个月份,输出对应的季节。

            C:if语句什么时候使用?

                    ***对几个值进行判断的时候

                            ****

                            1,2,3,4,5,6,7

                            if(x==1)

                            {}

                            else if(x==2)

                            {}

                                    ...

                    ***对结果是boolean类型的进行判断

                            ****

                            if(x>3)

                            {}

                            else if(x==3)

                            {}

                            else if(x??)

                            {}

                                    ...

                    ***对范围进行判断

                            ****

                            if(x>90 && x<100)

                            {}

                            else if(x>80 && x<=90)

                            {}

                            ...

    三、选择结构

    1、基本格式

            switch(表达式){

                    case 取值1:

                            执行语句;

                            break;

                    case 取值2:

                            执行语句;

                            break;

                    …...

                    default:

                            执行语句;

                            break;

            }

    2、针对基本格式的说明

            A:switch 用于定义选择结构范围。

                    表达式:被选择的结果,该表达式只能有四种类型:byte,short,int,char

                    注意:在JDK5以后,还支持一个叫做枚举的类型(enum);JDK7以后,还支持String类型。

            B:case :被选择的答案

            C:break:跳出,结束switch语句。

            D:default:默认的意思。当所有的case都不匹配时,执行default里面的内容。相当于if语句中的else。

    3switch语句细节

            A:switch语句何时结束?

    a:执行语句遇到break。

                    b:执行到语句的结尾。

    B:最后一个break可不可以不要呢?可以。

               中间的break可不可以不要呢?可以。但是结果可能不是想要的。所以一般中间                    的break不要省略。

                 面试一般考省略中间break的情形

            C:default和case前后顺序有关系吗?

                    A:执行上-- 执行上有关系,先执行所有case,当所有的case都不满足时,再执行default。

                    B:写法上-- 没有关系 建议按照基本格式写。default放最后。

            D:swithc语句中,break省略的情况有没有用呢?有。当多个答案针对同一处理。

    4、程序的流程:

                    先判断case的取值

                    A:如果case取值与表达式匹配,执行该case下的语句,若有break则程序结束,若没有,则程序继续往下执行,此时,不再判断case取值,直至遇到break或者至大括号处,程序结束

                    B:如果case取值与表达式不匹配,则不执行与之对应的语句,程序继续执行A

                    C:如果所有的case取值都与表达式不匹配,程序将执行default下的语句

               注意:当default语句置于非末尾处并且所有case值都不匹配时,程序执行default语句后,有beak将

                    结束程序,否则继续向下顺序执行,直至遇到break或者大括号,程序才结束。

    Ifswitch语句的应用场景

    如果是对具体的个数的数值进行判断

    两种皆可,建议使用switch,因为它会将被选答案加载进内存,选择效率会稍高。

    如果是对区间进行判断,if

    如果运算结果是Boolean类型,用if.

    四、循环结构

    1while循环的格式

            while(条件表达式){

                    执行语句;

            }

            A:执行流程:

                    a:首先判断条件表达式,如果结果为true,就执行while循环控制的语句。否则,不执行循环体。

                    b:循环体语句执行后,在回到A。知道条件不成立。

                       Ctrl+C 在DOS窗口中强制结束程序。

            B:while(条件表达式)不要加分号,否则结果你理解不了。

            C:while所控制的语句是一条的时候,也可以省略大括号,但是不建议。

     

    2do while循环的格式

            do{

                    执行语句;

            }while(条件表达式);      

            A;执行流程:

                    a:先执行一次循环体。

                    b:再判断条件表达式。如果值为true,就返回A继续。否则,结束循环。

            B:与while的区别:

                    a:while后面有分号

                    b:do while循环至少执行一次循环体,while循环有可能一次都不执行。

    3for循环的格式

            for(初始化表达式;循环条件表达式;循环后操作表达式){

                            执行语句;(循环体)

            }

    执行流程:

                    A:首先进行初始化表达式的执行。

                    B:其次,循环条件表达式的判断:

                            如果条件为true,则进循环体执行语句。

                            如果条件为false,则结束循环。

                    C:当循环体执行完毕后,就会执行循环后的操作表达式。

                            在接下来回到B步骤继续,直到结束循环。

                    D:初始化表达式只执行一次。

                              循环条件表达式执行一次或多次。

                              循环后的操作表达式零次或多次。

                    E;while循环和for循环时等价的。

                            变量的生命周期不一样。一般来说,只在它所属的{}内有效。

                            当你定义的初始化变量只为递增而存在,那么就用for循环,效率较高。

                            当你定义的初始化变量,操作完后,还得继续使用,用while循环。

    for( ;  ; ){}//for语句的最简单无限循环格式-----条件表达式默认为true

    while(true){}//while语句的最简单无限循环格式

    int x = 1;

    for(System.out.println("a");x<3;System.out.println("c")){

    System.out.println("d");

    }

    //a d c d c

    4、循环嵌套

            A:外循环执行一次,内循环执行多次。

            B:如果是打印形状等,外循环控制行数,内循环控制列数。

            C:举例

                    **打印正三角 内循环的循环条件表达式变化

                            内循环的循环条件表达式随着外循环的变化而变化。

                                     外:(int x=0;x<5;x++)

                                     内: (int y=0;y<=x;y++)

                    **打印倒三角 内循环的初始化表达式变化

                            内循环的初始化表达式随着外循环的变化而变化。

                                     外:(int x=0;x<5;x++)

                                     内: (int y=x;y<5;y++)

                    **打印33乘法表

    5、累加思想与计数器思想

            A:通过变量记录每次   变化的结果;通过循环进行累加动作。

            B:通过变量记录数据的状态变化,也需通过循环完成。

                      计数器的条件根据实际情况而定

    注意:一定要注意哪些语句参与循环,哪些语句不参与循环。

     

    五、continuebreak异同

            (1):都有自己的应用范围

                    A:continue用于循环

                    B:break用于选择结构和循环结构

            单独使用:他们单独使用时,无意义,并且下面不可以有语句,因为执行不到。

            (2):break结束当前所在循环,continue结束本次循环,进入下一次循环。

            标号可以改变跳出的循环。但是一般不用

     

    六、变量和语句的引用场景

    1、什么时候使用变量?

            ** 当我们使用的数据是一个不确定的值的时候

    2、什么时候使用if语句?

            ** 当进行判断的数值较多,结果是boolean类型或者是一个范围的时候,我们使用if    语句。if语句相对与switch语句范围更广。

    3、什么时候使用switch语句?

            ** 如果用于判断(选择)的数值不多,而且符合byte short int char 这四种类型时我们建    议使用switch语句,虽然if也能够完成,但不及switch语句效率高

    4、什么时候使用循环语句?

            **当要对某些语句执行很多次的时候,我们就要使用循环语句。

            while:如果在执行完循环体后还需用到循环语句中的变量时,我们就要使用while语句 除此之外,可以用for替换。

            for:  用于控制循环的增量定于在语句中,该变量只在for语句中有效,for语句执行完成后,该变量在内存中被释放。如果仅仅只是定义循环增量,用for更为合适因为while定义的变量在执行完循环体后,还存在于内存中,比较浪费资源

            **变量有自己的作用域

    break结束当前所在循环,continue结束本次循环,进入下一次循环。

  • 相关阅读:
    Can't connect to X11 window server using 的问题,求解
    自动化运维,让你远离背锅侠
    python netmiko实现cisco网络设备配置备份
    如何备份思科、锐捷、Juniper的配置文件
    网络配置备份。
    使用SecureCRT脚本备份网络设备配置的一点感悟
    網管利器!開源管理系統-LibreNMS
    邮件协议与port
    视频播放技术汇总(列表播放,小窗播放,跨界面播放,播放中网络切换提示)
    android插件式开发资料整理
  • 原文地址:https://www.cnblogs.com/aohongzhu/p/12938762.html
Copyright © 2011-2022 走看看