Java&Day-05流程控制语句

流程控制语句

  • println()小括号能写什么内容

    最终属于某种数据类型的字面值!

  • print和println区别?

println换行 print不换行

println小括号可以不写内容 print小括号必须写内容

算术

  +  - *   /   %  ++  --

赋值

=  += -= *=  /=  %=

比较

>  <   >=   <=   !=   ==

逻辑

| & !  ^ && || 

三目

数据类型  变量名 = 条件表达式 ? 字面值1 : 字面值2;
  boolean  flag = true ? true:false;

一、转义符

/  斜杠    \反斜杠(转义符)
package cn.E_106.JavaSe.day05.operator01;

public class Demo01 {
    public static void main(String[] args) {
        // \ 转义符,转换本来的含义,”本来跟前面的“是一对,经过转义,” 变成要输出的内容,而不再是符号的结束!
        System.out.println("\"");
        System.out.println('\'');
        System.out.println('"');
        System.out.println("'");
        //把字母t转义成tab
        System.out.println("名字\t小金");
        System.out.println("名字"+'\t'+"小木");
        // u表示编码  4e2d --- 1010111010101010 --- 中
        System.out.println('\u4e2d');
        //n字母 \n表示换行
        System.out.println("中国\n美国");
        System.out.println("\\");
        System.out.println('\\');

    }
}

二、流程控制语句(main方法体中)

  • 条件语句
  1. if语句
语法:if(条件表达式){if}

条件表达式:结果是boolean类型字面值
    
if体:main方法体可以写什么,if体就可以写什么(局部变量,输出语句)
    
含义:条件表达式成立,执行if体所有内容!条件表达式不成立,不执行if体

案例:如果考试及格,妈妈带我去游乐场!


public class Demo01 {
    public static void main(String[] args) {
        //案例:如果考试及格,吃腰子!
        double score=30;//score变量表示考试成绩!
        if(score>=60){
            System.out.println("吃腰子。。。");
        }

    }

}

注意问题:
    
    1.省略大括号问题
         变量作用域:变量在那个范围可以输出使用!
         变量在什么体中创建的,就是在什么体中可以使用!
       1.1  只能写一句(一个分号)
       1.2  写的这句不能是一个变量的创建


public class Demo02 {
    public static void main(String[] args) {
        //案例:如果考试及格,吃腰子!
        double score=30;//score变量表示考试成绩!
        if(score>=60)
           // int a=10;
            System.out.println("吃腰子。。。");
            System.out.println("吃俩腰子。。。");
    }

}

2. if()后面不能有分号
    
 //错误的示范!!!!!!
public class Demo03 {
    public static void main(String[] args) {

        //案例:如果考试及格,吃腰子!
        double score=30;//score变量表示考试成绩!
        if(score>=60);{
            System.out.println("吃腰子。。。");
        }
    }

}




​ 图例:

在这里插入图片描述

  1. if-else语句
语法:if(条件表达式){if}else{else}
else:什么都能写
理解:条件表达式成立,执行if体,条件表达式不成立,执行else体    
    
案例:如果考试及格吃腰子,否则去洗脚!
public class Demo01 {
    public static void main(String[] args) {
        //案例:如果考试及格吃腰子,否则去洗脚!
        // if如果  关键字
        // else否则 关键字
        double score=68.6;
        //第一种
        if(score>=60){
            System.out.println("吃腰子。。。");
        }else {
            System.out.println("去洗脚。。。");
        }
        //第二种
 System.out.println(score>=60?"吃腰子。。。":"去洗脚。。。");
        
        //第三种
       if(score>=60){
            System.out.println("吃腰子。。。");
        }
        if(score<60){
            System.out.println("去洗脚。。。");
        }     
        
        
    }
}
  
总结:如果是两种情况,那么可以用三目和if-else语句都可以的! 
      if语句是万能的,任何情况都可以使用if语句!
    

注意问题:
    1.大括号可以省略
public class Demo02 {
    public static void main(String[] args) {
        //如果今天是星期天,我们去打游戏,否则我们写代码
        int day = 7;
        if(day==7)
            System.out.println("我去打游戏。。。");
        else
            System.out.println("我去写代码。。。");
      }
   }

 2.if()后面没有分号   

​ 图例:

在这里插入图片描述

  1. if-else-if多分支语句
语法:if(1){1}   else if(2){1}   else if(3){3}

...  else{else}

()里都是if的条件表达式 {}都是ifelse{} else体

 理解:如果条1成立,执行体1,程序结束
      如果条1不成立,继续判断条2,如果条2还不成立,继续判断
      如果所有的条件都不成立,执行else体,如果期间遇到一个成立,执       行那个成立的,程序就结束了

案例:芝麻信用等级!

package cn.E_106.JavaSe.day05.if_else_if_demo;

public class Demo01 {
    public static void main(String[] args) {
        //Ctrl+/
//        芝麻信用分共分为5个等级
//        芝麻信用分最低是350分,最高是950分
//        信用较差:芝麻分在350分-550分之间
//        信用中等:芝麻分在550分-600分之间
//        信用良好:芝麻分在600分-650分之间
//        信用优秀:芝麻分在650分-700分之间
//        信用极好:芝麻分在700分-950分之间
        int score=670;
        if(score>=350 && score<550){
            System.out.println("信用较差");
        }else if(score>=550 && score<600){
            System.out.println("信用中等");
        }else if(score>=600 && score<650){
            System.out.println("信用良好");
        }else if(score>=650 && score<700){
            System.out.println("信用优秀");
        }else if(score>=700 && score<950){
            System.out.println("信用极好");
        }else {
            System.out.println("不在信用范围。。。");
        }



    }
}


package cn.E_106.JavaSe.day05.if_else_if_demo;

public class Demo02 {
    public static void main(String[] args) {
        /**
         * 考试等级
         * 90到100  优秀
         * 80到90   良好
         * 70到80   中等
         * 60到70   及格
         * 60以下   不及格
         */
        int score=86;
        if(score>=90){
            System.out.println("优秀!");
        }else if(score>=80){
            System.out.println("良好!");
        }else if(score>=70){
            System.out.println("中等!");
        }else if(score>=60){
            System.out.println("及格!");
        }else {
            System.out.println("不及格!");
        }



    }
}

if语句可以取代if-else-if多分支!
public class Demo03 {
    public static void main(String[] args) {
        //Ctrl+/
//        芝麻信用分共分为5个等级
//        芝麻信用分最低是350分,最高是950分
//        信用较差:芝麻分在350分-550分之间
//        信用中等:芝麻分在550分-600分之间
//        信用良好:芝麻分在600分-650分之间
//        信用优秀:芝麻分在650分-700分之间
//        信用极好:芝麻分在700分-950分之间
        int score=670;
        if(score>=350 && score<550){
            System.out.println("信用较差");
        }
        if(score>=550 && score<600){
            System.out.println("信用中等");
        }
        if(score>=600 && score<650){
            System.out.println("信用良好");
        }
        if(score>=650 && score<700){
            System.out.println("信用优秀");
        }
        if(score>=700 && score<=950){
            System.out.println("信用极好");
        }

        if(score<350 || score>950){
            System.out.println("不在信用范围。。。");
        }
    }
}

注意问题:  大括号可以省略
    
   

图例:

在这里插入图片描述

  1. switch语句
语法: switch(字面值){
   case 字面值1:
     输出语句,变量。。。
   break;
    case 字面值2:
     输出语句,变量。。。
   break;
    case 字面值3:
     输出语句,变量。。。
   break;
   ...
   default:
   输出语句,其他。。。
}

解释:swtich 开关 关键字  
     case 可能,情况 关键字
     break  结束,跳过
     default 默认的 关键字
     
理解:switch的字面值跟case的字面值相等,就执行case语句,如果所有的      caseswitch的字面值不相等,执行 default语句     

案例:日计划

周一        写代码

周二        看电影

周三        打篮球

周四        约会

周五        爬山

其他        不在计划范围

package cn.E_106.JavaSe.day05.switch_demo;

public class Demo01 {
    public static void main(String[] args) {
//        周一        写代码
//        周二        看电影
//        周三        打篮球
//        周四        约会
//        周五        爬山
//        其他        不在计划范围
        int day = 3;//表示周三
        switch (day){
            case 1:
                System.out.println("写代码");
                break;
            case 2:
                System.out.println("看电影");
                break;
            case 3:
                System.out.println("打篮球");
                break;
            case 4:
                System.out.println("约会");
                break;
            case 5:
                System.out.println("爬山");
                break;
             default:
                 System.out.println("不在计划范围。。。");
        }
    }
}


注意的问题:
    1.case穿透(忘记写break)
    如果switch语句都不写break,从成立的那个case一直穿透到最后!
   package cn.E_106.JavaSe.day05.switch_demo;

public class Demo02 {
    public static void main(String[] args) {
//        周一        写代码
//        周二        看电影
//        周三        打篮球
//        周四        约会
//        周五        爬山
//        其他        不在计划范围
        int day = 30;//表示周三
        switch (day){
            case 1:
                System.out.println("写代码");
            case 2:
                System.out.println("看电影");
            default:
                System.out.println("不在计划范围。。。");
            case 3:
                System.out.println("打篮球");
            case 4:
                System.out.println("约会");
            case 5:
                System.out.println("爬山");
        }
    }
}
 
    2.case并列
案例:
        春天-----345月
        夏天-----678月
        秋天-----91011月
        冬天-----1212package cn.E_106.JavaSe.day05.switch_demo;

public class Demo03 {
    public static void main(String[] args) {
//        案例:
//        春天-----3月 4月 5月
//        夏天-----6月 7月 8月
//        秋天-----9月 10月 11月
//        冬天-----12月  1月 2月
        int month = 7;
        switch (month){
            case 3: case 4: case 5: //month如果是3或者4或者5都执行春天!
                System.out.println("春天");
                break;
            case 6: case 7: case 8:
                System.out.println("夏天");
                break;
            case 9: case 10: case 11:
                System.out.println("秋天");
                break;
            case 12: case 1: case 2:
                System.out.println("冬天");
                break;
            default:
                System.out.println("没有这个季节!");
        }
    }
}
        
 总结:switch可以写的if-else-if也可以写,if语句也可以写!   
    

三、Scanner控制台输入(复制)

import java.util.Scanner;  放在类上面 !
// import关键字  引入导入  java目录 util目录 Scanner类
// Scanner是语言设计者写的一个类,让我们来使用的!

    ======获取到字符串=======
package cn.E_106.JavaSe.day05.scanner_demo;

import java.util.Scanner;

public class TestScanner01 {
    public static void main(String[] args) {
        //1.创建Scanner对象---用户可以在控制台输入内容了
        Scanner sc=new Scanner(System.in);
        //2.提示信息
        System.out.println("系统:请输入您的名字?");
        //3.获取到用户输入的字符串数据!
        // name获取到用户输入的内容
        String name = sc.next();
        System.out.println("系统:您的名字是"+name);
    }

}
=====获取整数=====
    package cn.E_106.JavaSe.day05.scanner_demo;

import java.util.Scanner;

public class TestScanner02 {
    public static void main(String[] args) {
        //1.创建Scanner对象
        Scanner sc=new Scanner(System.in);
        //2.提示信息
        System.out.println("系统:请输入您的年龄?");
        //3.获取到用户输入的整数年龄
        //age用户输入的年龄
        int age = sc.nextInt();
        System.out.println("系统:您的年龄是"+age);

    }
}
===获取小数====
    
package cn.E_106.JavaSe.day05.scanner_demo;

import java.util.Scanner;

public class TestScanner03 {
    public static void main(String[] args) {
        //1.创建Scanner对象
        Scanner sc=new Scanner(System.in);
        //2.提示
        System.out.println("系统:请输入您的身高!");
        //3.获取用户输入的身高 double
        double height = sc.nextDouble();
        System.out.println("系统:您的身高是"+height+"m");
    }
}

BMI 计算器

获取到用户的 身高和体重,只要知道bmi的计算公式,就可以给用户结果!
    
(BMI)=体重(kg)÷身高^2
    
18.5 <= bmi < 23 正常

23 < bmi < 25   前期肥胖

25<=bmi<30      1级肥胖

30<=bmi <40     2级肥胖

40 <=bmi        3级肥胖



package cn.E_106.JavaSe.day05.scanner_demo;

import java.util.Scanner;

public class BMI {
    public static void main(String[] args) {
        //1.创建Scanner对象
        Scanner sc = new Scanner(System.in);
       //2.提示输入身高
        System.out.println("请输入您的身高!");
       //3.获取到用户的身高
        double height = sc.nextDouble();
        //4.提示用户输入体重
        System.out.println("请输入您的体重!");
        //5.获取到用户的体重
        double weight = sc.nextDouble();
        //6.套入公式进行计算  (BMI)=体重(kg)÷身高^2
        double bmi = weight / (height * height);
        System.out.println("您的bmi值:"+bmi);
//        18.5 <= bmi < 23 正常
//        23 < bmi < 25   前期肥胖
//        25<=bmi<30      1级肥胖
//        30<=bmi <40     2级肥胖
//        40 <=bmi        3级肥胖
        if(18.5 <= bmi && bmi < 23 ){
            System.out.println("正常");
        }else if(23 <=bmi && bmi < 25){
            System.out.println("前期肥胖");
        }else if( 25<=bmi && bmi<30  ){
            System.out.println("1级肥胖");
        }else if( 30<=bmi && bmi <40 ){
            System.out.println("2级肥胖");
        }else if(bmi>=40){
            System.out.println("3级肥胖");
        }else {
            System.out.println("偏瘦!");
        }
    }
}
利用遗传因素即利用父母的身高进行预测。计算公式为:
儿子成人时的身高=(父高+母高)× 0.54
女儿成人时的身高=(父高×0.923+母高)÷2 

四、循环语句

  1. for循环
重复性动作可以用循环解决
语法:for(初始表达式;条件表达式;迭代语句){循环体}
解释:
  初始表达式,创建一个变量,有初始值  int i=1;
  迭代语句,i++   ++i   i+=2; 
  循环体,可以写输出语句,其他。。。
理解:初始表达式执行,条件表达式执行,如果不成立,循环结束!
     初始表达式执行,条件表达式执行,如果成立,执行循环体,执行迭代语句,再执行条件表达式,成立,继续执行循环体,迭代语句,执行条件表达式。。。条件表达式不成立,理解结束循环!

初始表达式是为循环体服务,那么初始表达式作用域就是循环体

案例:输出10次“HelloWorld!

package cn.E_106.JavaSe.day05.for_demo;

public class Demo02 {
    public static void main(String[] args) {//方法体

        for(int i=1;i<=10;i++){//循环体
            System.out.println("HelloWorld!");
            System.out.println(i);
        }
        System.out.println("-------------");
        for(int i=1;i<=100;i++){
            System.out.print(i+"\t");
        }

    }
}

循环的问题:
    
    1.死循环问题
      永远不会停止的循环
package cn.E_106.JavaSe.day05.for_demo;

public class Demo03 {
    public static void main(String[] args) {
        //1. 条件写错造成死循环!
//        for(int i=1;i<=10;i--){
//            System.out.println("hello!");
//        }
        //没有意义的一句话
 //       System.out.println("执行吗?");
        //2.条件直接是true,前后内容可以写可以不写
//        for(int i=1;true;i++){
//            System.out.println(i);
//        }
   //     System.out.println("");

        //3.什么都不写的死循环
        for(;;){
            System.out.println("hello!");
        }
    }
}

2.初始表达式(变量)为循环体服务,作用域循环体
    扩大初始表达式的作用域到main方法体中!
    
    int i=1;for(i;i<=5;i++){ }----错误的!
    int i; for(i=1;i<=5;i++){}----正确的!


public class Demo04 {
    public static void main(String[] args) {
        int i;//声明在外
        for(i=1;i<=5;i++){
            System.out.println(i);
        }
        System.out.println("i最终值:"+i);

    }
}

3.迭代语句可以写在循环体
    package cn.E_106.JavaSe.day05.for_demo;

public class Demo05 {
    public static void main(String[] args) {
        for(int i=1;i<=5;){
            System.out.println(i++);
        }
    }
}

4.大括号可以省略
    
package cn.E_106.JavaSe.day05.for_demo;

public class Demo05 {
    public static void main(String[] args) {
        for(int i=1;i<=5;)
            System.out.println(i++);

    }
}

5.多个初始表达式,多个迭代语句    
    
package cn.E_106.JavaSe.day05.for_demo;
public class Demo06 {
    public static void main(String[] args) {
        for(int i=1,j=10;i<j;i++,j--){
            System.out.println(i+"\t"+j);
        }
    }
}


图例:

在这里插入图片描述

1.求1到100的和?

2.求5的阶乘?

3.Scanner结合Switch语句 --- 英雄联盟

  小金 
  四个季节:
  A  蜜桃四季春
  B  夏日芋泥波波
  C  秋天第一杯
  D  冬日来杯卡布奇诺!
   在控制台输入  A ---提示  :小金正在点 蜜桃四季春!
   
 4.控制台登录功能
   预先设计一个用户名和密码
   让用户在控制台输入手机号(整数)
   让用户在控制台输入密码(整数)
   如果用户名或者密码有一个错误,那么提示用户,用户名或者密码错误!
   如果都正确,提示用户登录成功!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值