A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不存在的奇迹 中级黑马   /  2015-4-16 22:02  /  247 人查看  /  0 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

流程控制语句
        (1)顺序结构 从上往下,依次执行
        (2)选择结构        按照不同的选择,执行不同的代码
if语句、Switch语句
        (3)循环结构 做一些重复的代码
for语句、while语句、do while语句

if语句☆
        (1)三种格式
                A:格式1
                        if(比较表达式) {
                                语句体;
                        }
                       
                        执行流程:
                                判断比较表达式的值,看是true还是false
                                如果是true,就执行语句体
                                如果是false,就不执行语句体
               
                B:格式2
                        if(比较表达式) {
                                语句体1;
                        }else {
                                语句体2;
                        }
                       
                        执行流程:
                                判断比较表达式的值,看是true还是false
                                如果是true,就执行语句体1
                                如果是false,就执行语句体2
                               
                C:格式3
                        if(比较表达式1) {
                                语句体1;
                        }else if(比较表达式2){
                                语句体2;
                        }
                        ...
                        else {
                                语句体n+1;
                        }
                       
                        执行流程:
                                判断比较表达式1的值,看是true还是false
                                如果是true,就执行语句体1
                                如果是false,就继续判断比较表达式2的值,看是true还是false
                                如果是true,就执行语句体2
                                如果是false,就继续判断比较表达式3的值,看是true还是false
                                ...
                                如果都不满足,就执行语句体n+1
        (2)注意事项
                A:比较表达式无论简单还是复杂,结果是boolean类型
                B:if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条,不能省略。
                        建议:永远不要省略。
                C:一般来说,有左大括号,就没有分号,有分号,就没有左大括号。
                D:else后面如果没有if,是不会出现比较表达式的。
                E:三种if语句其实都是一个语句,只要有一个执行,其他的就不再执行。
        (3)案例:
                A:比较两个数是否相等
                B:获取两个数中的最大值
                C:获取三个数中的最大值(if语句的嵌套)
                D:根据成绩输出对应的等级
                E:根据月份,输出对应的季节
                F:根据x计算对应y的值并输出
        (4)三元运算符和if语句第二种格式的关系
                所有的三元运算符能够实现的,if语句的都可以实现,反之不成立。

          什么时候if语句实现不能用三元改进?
                如果if语句第二种格式控制的语句体是输出语句,就不可以。
                因为三元运算符是一个运算符,必须要有一个结果返回,不能是一个输出语句。

Switch语句☆
        (1)格式:
                switch(表达式) {
                        case 值1:
                                语句体1;
                                break;
                        case 值2:
                                语句体2;
                                break;
                        ...
                        default:
                                语句体n+1;
                                break;
                }
                        A:表达式可以是byte、short、int、char
                                JDK5以后可以是枚举
                                JDK7以后可以是字符串
                        B:case后面的值就是要和表达式进行比较的值
                        C:break表示程序到这里中断,跳出switch语句
                        D:default如果所有的情况都不匹配才执行这里、相当于if语句中的else
        (2)面试题
                switch语句的表达式可以是byte吗?可以是long吗?可以是String吗?
                        可以、不可以、JDK7以后可以
        (3)执行流程:
                A:首先计算表达式的值
                B:和每一个case进行匹配,如果有就执行对应的语句体,看到break就结束。
                C:如果没有匹配,就执行default的语句体n+1。
        (4)注意事项:
                A:case后面只能是常量,不能是变量,而且多个case后面的值不能相同
                B:default可以省略吗?
                        可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
                        特殊情况:
                                case就可以把值固定。
                                A、B、C、D
                C:break可以省略吗?
                        可以省略,但是结果可能不是我们想要的。
                        会出现一个现象:case穿透。
                        建议不要省略
                D:default一定要在最后吗?
                        不是,可以在任意位置。但是建议在最后。
                E:switch语句的结束条件
                        a:遇到break就结束了
                        b:执行到末尾就结束了
        (5)案例:
                A:键盘录入一个数字(1-7)、输出对应的星期几。
                B:单项选择题
                C:键盘录入一个字符串的问题
                        String s = sc.nextLine();
                D:根据给定的月份、输出对应的季节
        (6)if语句和switch语句各自的场景
                A:if
                        针对boolean类型的判断
                        针对一个范围的判断
                        针对几个常量的判断
                B:switch
                        针对几个常量的判断

循环语句☆
        (1)有三种:for、while、do...while
        (2)for循环语句
                A:格式
                        for(初始化语句判断条件语句;控制条件语句){
                                循环体语句;
                        }
                       
                        执行流程:
                                a:执行初始化语句
                                b:执行判断条件语句
                                        如果这里是true,就继续
                                        如果这里是false,循环就结束
                                c:执行循环体语句
                                d:执行控制条件语句
                                e:回到b
                B:注意事项
                        a:判断条件语句无论简单还是复杂,结果是boolean类型
                        b:循环体语句如果是一条,可以省略大括号,但是不建议
                        c:有分号就没有左大括号,有左大括号就没有分号
                C:案例
                        a:输出10次HelloWorld
                        b:输出1-10的数据
                        c:输出10-1的数据
                        d:求1-10的和
                        e:求1-100的和、求1-100的偶数和、求1-100的奇数和
                        f:求5的阶乘
                        g:在控制台打印水仙花数
                        h:统计水仙花个数
                        i:改进版的回文数
                                一个五位数
                                个位 = 万位
                                十位 = 千位
                                个位 + 十位 + 千位 + 万位 = 百位
                        j:统计1-1000之间同时满足如下条件的数据有多少个
                                x%3==2
                                x%5==3
                                x%7==2
        (3)while循环
                A:基本格式
                        while(判断条件语句) {
                                循环体语句;
                        }
                       
                        扩展格式:
                        初始化语句;
                        while(判断条件语句){
                                循环体语句;
                                控制条件语句;
                        }
                       
                        通过查看这个格式,我们就知道while循环可以和for循环等价转换。
                B:while的练习
                        把for语句的练习用while改进
                C:for和while的区别
                        a:for语句的那个控制条件变量、在循环结束后不能在使用了。
                                而while的可以继续使用。
                        b:for比较适合于一个范围的判断
                                while而适合次数不明确的
                        c:while语句()内可以是一个boolean类型,而if只能是一个范围
               
        (4)do...while循环
                A:基本格式
                        do {
                                循环体语句;
                        }while(判断条件语句);
                       
                        扩展格式:
                        初始化语句;
                        do {
                                循环体语句;
                                控制条件语句;
                        }while(判断条件语句);
                       
                        通过查看格式,我们就可以看出其实三种循环的格式可以是统一的。
                B:三种循环的区别
                        a:do...while循环至少执行一次循环体
                        b:for和while必须先判断条件是否是true,然后后才能决定是否执行循环体
        (5)循环使用的注意事项(死循环)
                A:一定要注意修改控制条件、否则容易出现死循环。
                B:最简单常见的死循环格式
                        a:while(true){...}
                        b:for(;;){}
                       
控制跳转语句☆
        (1)break:中断的意思
使用场景:
                A:switch语句中
                B:循环语句中,加入了if判断的情况时,使用break跳出
注意:离开上面的两个场景是无意义的
作用:
                A:跳出单层循环
                B:跳出多层循环,需要标签语句的配合
        (2)continue:继续
                A:只能用在循环语句中,离开此应用场景无意义。
                B:作用
                        a:跳出单层循环的一次,可以继续下一次
★continue和break的区别:break是跳出单层循环,而continue则是跳出本次循环
                C:填空题
                        for(int x=1; x<=10; x++) {
                                if(x%3 == 0) {
                                        //补齐代码
                                }
                                System.out.println("Java基础班");
                        }
                        如何让控制台输出2次:Java基础班
使用break,1和2输出,到3的时候终止
                        如何让控制台输出7次:Java基础班
使用continue,除了3,6,9其他都输出
                        如何让控制台输出13次:Java基础班
添加一句System.out.println("Java基础班");
        (3)return:返回
其实它的作用不是结束循环的,而是结束方法的,例如结束main()方法。一旦遇到return程序就不会在继续往后执行。

附加题:
小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱
               

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马