if switch while do{}while for

一.转义字符

理解:具有特殊意义的字符本身

    \" 表示一个双引号
    \' 表示一个单引号
    \\ 表示一个斜杠
    \n 表示换行
    \t 表示水平制表

二.常量

1.数字字面量:程序中出现的数字

整数数字默认int类型 小数数字默认double类型 int i = 100; i = 200; System.out.println(i); 注意:100和200是常量,i是变量

2.字面值常量:使用双引号括起来的内容

System.out.println("abc"); 注意:"abc"是常量

3.使用final关键字修饰的变量

final int I = 100; System.out.println(I); 注意: 1.I为常量 2.常量的命名规范:所有字母大写,单词与单词之间使用下划线隔开 ps:MAX_VALUE

    扩容:
        字面值常量和final修饰的变量存储在内存的常量池中
*/

三.Java的执行语句

1.顺序语句:方法里的代码从上往下执行 ​ 2.分支语句:判断某个条件,执行不同的功能 ​ 2.1 if分支 ​ 2.2 switch分支 ​ 3.循环语句:只要条件成立,就重复性的做某个功能 ​ 3.1 for循环 ​ 3.2 while循环 ​ 3.3 do-while循环 ​ 4.特殊的流程控制语句 ​ 4.1 break ​ 4.2 continue ​ 4.3 return ​ 4.4 lable

四.简单的if分支

语法结构: if(表达式){ ...代码块... }

        理解:
            表达式的结果必须是boolean类型
                true - 执行代码块
                false - 跳过if分支,执行if以外的代码
                
        做实验:
            if(false){
                System.out.println("...代码块...");
            }
            System.out.println("if以外的代码");
            
        需求:如果三上悠亚的Java考试成绩大于98分,麻生希就能获得一辆法拉利作为奖励
            Scanner scan = new Scanner(System.in);
    
            System.out.println("请输入考试成绩:");
            double score = scan.nextDouble();
            
            if(score > 98){
                System.out.println("奖励三上悠亚法拉利玩具赛车一辆");
            }
            
        小结:if(){}表示可进入也可以不进去

五.复杂的if分支

需求1:人类的健康值在20-25的数值内为健康 (健康值算法为:体重(Kg) / 身高(米)的平方) Scanner scan = new Scanner(System.in);

        System.out.println("请输入体重(Kg):");
        double weigth = scan.nextDouble();
        System.out.println("请输入身高(M):");
        double height = scan.nextDouble();
        
        double health = weigth / (height*height);
        
        if(health > 20 && health < 25){
            System.out.println("小护士说:\"健康,保持现有状态\"");
        }
        
    案例二:麻生希Java成绩大于98分,而且音乐成绩大于80分,老师奖励他;
            或者Java成绩等于100分,音乐成绩大于70分,老师也可以奖励他。
        Scanner scan = new Scanner(System.in);
    
        System.out.println("请输入Java成绩:");
        double javaScore = scan.nextDouble();
        System.out.println("请输入音乐成绩:");
        double musicScore = scan.nextDouble();
        
        if((javaScore>98 && musicScore>80) || (javaScore==100 && musicScore>70)){
            System.out.println("奖励麻生希烤肠2根");
        }
        
    小结:
        if分支可以判断复杂的条件,只要结果是boolean就行
        if分支可以判断区间

六.if...else...

语法结构: if(表达式){ ...代码块... }else{ ...else代码块... }

    理解:
        表达式里的结果必须是boolean类型
            true - 执行代码块
            false - 执行else代码块
            
    做实验:
        if(false){
            System.out.println("...代码块...");
        }else{
            System.out.println("...else代码块...");
        }
        
        System.out.println("if以外的代码块");
        
    需求:如果古川伊织Java考试成绩大于98分,老师就奖励他一个劳斯莱斯,
          否则老师就罚他进行编码
        Scanner scan = new Scanner(System.in);
    
        System.out.println("请输入考试成绩:");
        double score = scan.nextDouble();
        
        if(score > 98){
            System.out.println("奖励古川伊织劳斯莱斯玩具赛车一辆");
        }else{
            System.out.println("何老师给古川伊织通宵补课");
        }
    
    小结:if...else...在二选一的情况下使用

七.多种if分支>

语法结构: if(表达式1){ ...代码块1...

        }else if(表达式2){
            ..代码块2...
            
        }else if(表达式n){
            ..代码块n...
            
        }else{
            ...else代码块...
        }
        
    理解:
        表达式的结果必须是boolean类型
        从上往下判断表达式,哪个表达式先为true,就执行对应的代码块
        如果都不为true,就执行else代码块
        else代码根据需求,可写可不写
        
    需求1:人类的健康值在
        15-20的数值内为偏瘦
        20-25的数值内为健康
        25-30的数值内为偏胖
        (健康值算法为:体重(Kg) / 身高(米)的平方)
        Scanner scan = new Scanner(System.in);
    
        System.out.println("请输入体重(Kg):");
        double weigth = scan.nextDouble();
        System.out.println("请输入身高(M):");
        double height = scan.nextDouble();
        
        double health = weigth / (height*height);
        
        if(health > 15 && health <= 20){
            System.out.println("小护士说:\"偏瘦,多吃垃圾食品,多喝啤酒,多熬夜\"");
            
        }else if(health > 20 && health <= 25){
            System.out.println("小护士说:\"健康,保持现有状态\"");
            
        }else if(health > 25 && health < 30){
            System.out.println("小护士说:\"偏胖,多运动,嘿嘿嘿~~~\"");
            
        }else{
            System.out.println("小护士说:\"健康值异常,请到医院详细检查\"");
        }
        
    案例二:通过键盘录入学生成绩
        如果在90-100之间,则打印“A”,
        否则如果在80-90之间,则打印“B”,
        否则如果在70-80之间,则打印“C”
        否则如果在60-70之间,则打印“D”
        否则如果在0-60之间,则打印“E”
        否则打印“成绩异常”
        
        Scanner scan = new Scanner(System.in);
    
        System.out.println("请输入成绩:");
        double score = scan.nextDouble();
        
        if(score >= 90 && score <= 100){
            System.out.println("A");
        }else if(score >= 80 && score < 90){
            System.out.println("B");
        }else if(score >= 70 && score < 80){
            System.out.println("C");
        }else if(score >= 60 && score < 70){
            System.out.println("D");
        }else if(score >= 0 && score < 60){
            System.out.println("E");
        }else{
            System.out.println("成绩异常");
        }
    
    小结:多重if分支在多选一的情况下使用

八.嵌套if分支

Scanner scan = new Scanner(System.in);

            System.out.println("请输入比赛成绩:");
            double score = scan.nextDouble();
            
            if(score > 0 && score < 16){
                
                System.out.println("请输入性别:");
                String sex = scan.next();
                
                if(sex.equals("男")){//比较sex和"男"两个字符串内容是否相同
                
                    System.out.println("恭喜,进入到男子组决赛");
                    
                }else if(sex.equals("女")){//比较sex和"女"两个字符串内容是否相同
                    
                    System.out.println("恭喜,进入到女子组决赛");
                    
                }else{
                    System.out.println("性别异常");
                    
                }
                
            }else if(score >= 16){
                System.out.println("谢谢参与");
            }else{
                System.out.println("成绩异常");
            }
    
        小结:
            1.if可以无限层嵌套
            2.经验:if最好不要超过三层嵌套,因为可读性会下降

九.switch的使用

语法结构: switch(表达式){ case 值1: ...代码块1... break; case 值2: ...代码块2... break; case 值n: ...代码块n... break; default: ...default代码块... break; }

    理解:
        表达式的结果分别给值1、值2、值n比较,哪个相同,就执行对应的代码块
        break表示跳出整个分支语句
        如果表达式跟值1、值2、值n都不相同,则执行default代码块
        根据需求default代码块可写可不写
        
    做实验:
        switch(1000){
            case 10:
                System.out.println("10");
            break;
            case 50:
                System.out.println("50");
            break;
            case 100:
                System.out.println("100");
            break;
            default:
                System.out.println("default代码块");
            break;
        }
        
        System.out.println("switch分支以外的代码");
        
    案例:三上悠亚参加计算机编程大赛
        如果获得第一名,将参加千锋组织的1个月马尔代夫旅游
        如果获得第二名,将奖励苹果Pro笔记本电脑一部
        如果获得第三名,将奖励移动硬盘一个
        否则,何老师晚上给三上悠亚通宵补课
        
        Scanner scan = new Scanner(System.in);
    
        System.out.println("请输入比赛名次:");
        String str = scan.next();
        
        switch(str){
            case "第一名":
                System.out.println("和何老师一起参加千锋组织的1个月马尔代夫旅游");
            break;
            case "第二名":
                System.out.println("奖励苹果Pro笔记本电脑一部");
            break;
            case "第三名":
                System.out.println("奖励移动硬盘一个");
            break;
            default:
                System.out.println("何老师晚上给三上悠亚通宵补课");
            break;
        }
        
    小结:switch主要是判断单个值是否相同
*/
public static void main(String[] args){
​
}

}

1.switch的深入

面试题: case的值可以相同吗? 不可以

        default可以省略吗?
            可以
            
        break可以省略吗?
            可以
        
        default的位置一定要在最后吗?
            不一定
        
        表达式值的类型可以是什么?
            byte、short、int、char、枚举(JDK1.5)、String(JDK1.7)
            
            底层:switch只能识别int
            底层实现:
                byte   自动向上转型成int
                short  自动向上转型成int
                int    直接就使用int值
                char   获取字符的Unicode码
                枚举   使用枚举类的对象编号,这个编号就是int类型
                String 获取的字符串的hash码,这个hash码就是int类型
                
        为什么switch底层只能识别int?
            因为switch底层有个指令,这个指令只能接受int类型的数据
            
    需求:输入年和月,输出当月的天数
    分析:
        1、3、5、7、8、10、12月 -- 31天
        4、6、9、11月 -- 30天
        2月 -- 闰年29天、平年28天
        闰年:年份被4整除并且不能被100整除 或者 年份被400整数
        
        Scanner scan = new Scanner(System.in);
    
        System.out.println("请输入年:");
        int year = scan.nextInt();
        System.out.println("请输入月:");
        int month = scan.nextInt();
        
        int day = 0;
        switch(month){
            case 1:case 3:case 5:case 7:case 8:case 10:case 12:
                day = 31;
            break;
            case 4:case 6:case 9:case 11:
                day = 30;
            break;
            case 2:
                if((year%4==0 && year%100!=0) || (year%400==0)){//闰年
                    day = 29;
                    
                }else{//平年
                    day = 28;
                }
            break;
        }
        
        System.out.println(year + "年" + month + "月的天数为:" + day + "天");
        
    知识点:if vs switch
        表达式的区别:
            if:只能是boolean类型
            switch:byte、short、int、char、枚举(JDK1.5)、字符串(JDK1.7)
*/
public static void main(String[] args){
​
}

}

十.使用循环的好处

知识点:for循环 语法结构: for(表达式1;表达式2;表达式3){ ...代码块/循环体... }

    理解:
        表达式1 -- 初始化变量
        表达式2 -- 判断条件
        表达式3 -- 更新变量
        
    执行步骤:
        1.初始化变量
        2.判断条件,结果必须是boolean类型
            2.1 true  - 执行代码块,更新变量,再重复第2个步骤
            2.2 false - 跳出整个循环语句
            
    做实验:输出5遍"用良心做教育"
        for(int i = 1;i<=5;i++){
            System.out.println("用良心做教育");
        }
        
    for循环变形记:
        int i = 1;
        for(;i<=5;){
            System.out.println("用良心做教育 - " + i);
            
            ++i;//++i;和i++;没区别
        }
        System.out.println(i);//6
        
    需求1:打印1~10的数字
        for(int i = 1;i<=10;i++){
            System.out.println(i);
        }
        
    需求2:打印1~10的奇数数字
        for(int i = 1;i<=10;i+=2){
            System.out.println(i);
        }
        
    需求3:打印10~1的数字
        for(int i = 10;i>=1;i--){
            System.out.println(i);
        }
​
    需求4:打印10~1的偶数数字
        for(int i = 10;i>=1;i-=2){
            System.out.println(i);
        }
        
    小结:
        1.for循环中声明的变量其作用域只在该循环中
        2.初始化变量不一定从1开始
        3.更新变量不一定是++
        
    案例1:循环录入5次int类型的数字,输出总和
        Scanner scan = new Scanner(System.in);
    
        int sum = 0;
        for(int i=1;i<=5;i++){
            System.out.println("请输入第" + i + "个数字:");
            int num = scan.nextInt();
            sum += num;
        }
        
        System.out.println("总数为:" + sum);
        
    案例2:循环录入小西满里惠同学的5门课成绩,计算平均分
        Scanner scan = new Scanner(System.in);
    
        double sum = 0;
        for(int i=1;i<=5;i++){
            System.out.println("请输入第" + i + "门成绩:");
            double score = scan.nextDouble();
            sum += score;
        }
        
        double avg = sum/5;
        System.out.println("平均分为:" + avg);
        
    案例3:循环录入5次int类型的数字,输出最大值
        Scanner scan = new Scanner(System.in);
​
        //假设第一个数字为最大值
        System.out.println("请输入第1个数字:");
        int max = scan.nextInt();
​
        for(int i=2;i<=5;i++){
            System.out.println("请输入第" + i + "个数字:");
            int num = scan.nextInt();
            if(max < num){
                max = num;
            }
        }
        
        System.out.println("最大值为:" + max);
*/
public static void main(String[] args){
​
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值