美文网首页程序员
003-控制流程语句if,elseif,switch,for,w

003-控制流程语句if,elseif,switch,for,w

作者: Ktry | 来源:发表于2020-03-15 23:21 被阅读0次

    控制流程语句

    • 分支结构
    • 循环结构

    分支结构

    简单的if结构

    语法:
    if(boolean类型的条件){
        如果boolean结果为true执行此处代码
    }
    举例:
    如果年龄大于16年可以找女朋友
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入你的年龄");
    int age = sc.nextInt();
    if(age > 16){
        System.out.println("可以找女朋友");
    }
    如果年龄大于16年可以找女朋友,且性别是男的
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入你的年龄");
    int age = sc.nextInt();
    String sex = sc.next();
    if(age > 16 && sex.equals("男")){
        System.out.println("可以找女朋友");
    }
    

    if...else结构

    语法:
    if(boolean类型条件){
        如果boolean结果为true执行此处代码
    }else{
        如果boolean结果为false执行此处代码
    }
    举例:
    如果java成绩大于80分,可以奖励一套<葵花宝典>,否则惩罚写代码
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入你的java成绩");
    double score = sc.nextDouble();
    if(score >80){
        System.out.println("奖励女朋友");
    }else{
        System.out.println("惩罚写代码");
    }
    如果会唱跳或者会rap、篮球,可以和cxk交朋友,否则和赵四交朋友
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入你会唱跳吗?");
    boolean boo1 = sc.nextBoolean();
    System.out.println("请输入你会rap、篮球吗?");
    boolean boo2 = sc.nextBoolean();
    if(boo1 == true || boo2 == true){
        System.out.println("可以和cxk交朋友");
    }else{
        System.out.println("可以和赵四交朋友");
    }
    

    多重if结构

    语法:
    if(boolean类型条件1){
        满足条件1执行此处代码
    }else if(boolean类型条件2){
        满足条件2执行此处代码,不满足条件1
    }else if(boolean类型条件3){
        满足条件3执行此处代码,不满足条件1和2
    }else{
        不满足以上条件,执行此处代码
    }
    举例:
    如果手头大于10000块买iPhone11
    如果手头大于6000块买华为
    如果手头大于3000块买小米
    如果手头大于1000块买诺基亚    
    否则好好学习
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入手头上的金额");
    int money = sc.nextInt();
    if(money > 10000){
        System.out.println("买iPhone11");            
    }else if(money >6000){
        System.out.println("买华为");
    }else if(money >3000){
        System.out.println("买小米");
    }else if(money >1000){
        System.out.println("买诺基亚");
    }else{
        System.out.println("好好学习,挣钱");
    }
    多重if要注意的问题:要将苛刻的条件往前放
    

    嵌套if结构

    语法:
    if(boolean类型条件1){
        if(boolean类型条件2){
            满足条件1的前提下满足条件2,执行此处代码,
        }else{
            满足条件1的前提下不满足条件2,执行此处代码,
        }
    }
    
    购物如果满300块可以打折,如果是会员打8折,如果不是会员打九折
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入购物的金额");
    double money = sc.nextDouble();
    if(money > 300){
        System.out.println("请输入是否是会员");
        boolean vip = sc.nextBoolean();
    
        if(vip == true){
            money *= 0.8;
        }else{
            money *= 0.9;
        }
    }
    System.out.println("您本次需要支付"+money);
    

    总结 String类型在比较内容是否相等时候要用equals方法来判断不能用== 基本数据类型做等值判断用== String类型做等值判断用equals 语法: 字符串1.equals(字符串2)

    if分支的特殊用法

    if语句的大括号可以不写,但是如果不写,这个if只能控制一行代码。(看得懂不要用)

    int age = 10;
    if(age > 18)
        System.out.println("可以上网");
    

    举例

    判断今年是否是闰年(能被4整除且不能被100整除,或者能被400整除)
    如果成绩大于90分优秀,80分良,70分中等,60分,否则留级
    如果赛跑成绩小于15,可以进入决赛,男的进入男子组,女的进入女子组
    

    代码实现

    /**
        1:判断今年是否是闰年(能被4整除且不能被100整除,或者能被400整除)
        2:如果成绩大于90分优秀,80分良,70分中等,60分,否则留级
        3:如果赛跑成绩小于15,可以进入决赛,男的进入男子组,女的进入女子组
    */
    import java.util.Scanner;
    public class Test1{
        public static void main(String[] args){
            /*
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入年份");
            int year = sc.nextInt();
            if(year %400 ==0 ||  (year % 4==0 && year % 100 !=0) ){
                System.out.println("闰年");
            }else{
                System.out.println("平年");
            }        
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入成绩");
            int score = sc.nextInt();        
            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("好好学习");
            }        
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入成绩");
            int score = sc.nextInt();
            if(score < 15){
                System.out.println("请输入性别");
                String sex = sc.next();
                if(sex.equals("男")){
                    System.out.println("进入男子组");
                }else{
                    System.out.println("进入女子组");
                }        
    
            }else{
                System.out.println("很遗憾,淘汰");
            }        
            */                
        }    
    }
    

    switch....case结构

    switch(具体的值){
        case 值1:
            具体的值 与值1  相等的时候,执行此处代码
            break;
        case 值2:
            具体的值 与值2  相等的时候,执行此处代码
            break;
        case 值3:
            具体的值 与值3  相等的时候,执行此处代码
            break;
        case 值4:
            具体的值 与值4  相等的时候,执行此处代码
            break;
        default :
            与所有的case都不匹配的时候,执行此处代码
            break;
    }
    
    具体的值:byte、short、char、int、枚举,在jdk1.7之后可以使用String类型
    case中的值不能相等
    
    举例:
    如果选择1就执行登录操作
    如果选择2就执行注册操作
    如果选择3就执行查看操作
    如果选择4就执行退出操作
    如果选择其他就提示输入有误
    
    Scanner sc = new Scanner(System.in);
    System.out.println("欢迎进入cxk人事管理系统");    
    System.out.println("1、登录");    
    System.out.println("2、注册");    
    System.out.println("3、查询");    
    System.out.println("4、退出");                
    int num = sc.nextInt();
    switch(num){
        case 1:
            System.out.println("进入登录功能(待开发)");
            break;
        case 2:
            System.out.println("进入注册功能(待开发)");
            break;
        case 3:
            System.out.println("进入查询功能(待开发)");
            break;
        case 4:
            System.out.println("进入退出功能(待开发)");
            break;
        default :
            System.out.println("输入有误");
            break;            
    }
    

    switch语句总结

    • switch语句一般都是用做等值判断
    • switch语句能用的类型byte、short、int、char、String、枚举
    • switch语句中不加break的时候的

    举例

    如果选择"春天"   输出345月份
    如果选择"夏天"   输出678月份
    如果选择"秋天"   输出9、10、11月份
    如果选择"冬天"   输出12、1、2月份
    如果选择其他就提示输入有误
    
    判断学生成绩是优秀还是其的,  使用switch case实现
    
    

    代码实现

    /**
        如果选择"春天"   输出345月份
        如果选择"夏天"   输出678月份
        如果选择"秋天"   输出9、10、11月份
        如果选择"冬天"   输出12、1、2月份
        如果选择其他就提示输入有误    
        判断学生成绩是优秀还是其的,  使用switch case实现    
        98 97 90 99   优秀
        88 81 80 82   良好
    */
    import java.util.Scanner;
    public class Test2{    
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入分数");
            int score = sc.nextInt();        
            switch(score/10){
                case 10:
                case 9:
                    System.out.println("陈独秀");
                    break;
                case 8:
                    System.out.println("良好");
                    break;
                case 7:
                    System.out.println("中等");
                    break;
                case 6:
                    System.out.println("及格");
                    break;
                default:
                    System.out.println("留级");
                    break;
            }        
            /*
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入季节");
            String jijie = sc.next();
            switch(jijie){
                case "春天":
                    System.out.println("3、4、5月份");
                    break;
                case "夏天":
                    System.out.println("6、7、8月份");
                    break;
                case "秋天":
                    System.out.println("9、10、11月份");
                    break;
                case "冬天":
                    System.out.println("12、1、2月份");
                    break;
                default :
                    System.out.println("你输入的季节有误");
                    break;
            }        
            */
        }
    
    }
    
    

    循环语句

    • for循环
    • while循环
    • do..while循环

    for循环

    语法:
    for(循环的初始化;循环的结束条件;循环的更新){
        循环体
    }
    
    举例:输出一百遍    "我喜欢java"
    
    for(int i=1; i <=100 ;i++){
        System.out.println("我喜欢java"+i);
    }
    
    
    

    while循环

    语法:
    while(循环结束条件){
    
    }
    举例:计算1~100的和
    int i = 1;
    int sum = 0;
    while(i <= 100){
        sum = sum + i;
        i++;
    }
    System.out.println("总和为:"+sum);
    
    

    练习代码

    /*
        从键盘上输入任意一个整数,输出这个整数是几位数
        思路:每次除以10,直到为0,循环的次数就是这个数的位数
        1234
        123
        12
        1
        0    
    */
    import java.util.Scanner;
    public class Test1{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个任意整数");
            int num = sc.nextInt();
            //定义一个变量来保存输入的值
            int temp = num;
    
            if(num == 0){
                System.out.println("0是一个1位数");
            }else{
                //定义一个变量用来保存循环的次数
                int count = 0;
                while(num != 0){
                    num = num /10; 
                    count++;      
                }
                System.out.println(temp+"是一个"+count+"位数");
            }        
        }    
    }
    /*
        从键盘上输入任意一个整数,输出这个数的每一位上的数字
        思路:  每次对10取余得到个位数,然后除以10再对10取余    
        int a = num % 10;
        num =  num / 10
        int b = num % 10;
        num =  num / 10
        int c = num % 10;
        num =  num / 10
        int d = num % 10;
        num =  num / 10
    */
    import java.util.Scanner;
    public class Test2{    
        public static void main(String[] args){        
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个任意整数");
            int num = sc.nextInt();        
            while(num != 0){
                int i = num % 10;
                System.out.println(i);
                num = num /10;
    
            }    
        }
    }
    
    

    do while循环

    语法:
    do{
        循环体
    }while(循环结束条件);
    举例:计算1~100的和
    int i = 1;
    int sum = 0;
    do{
        sum = sum + i;
        i++;
    }while(i <= 100);
    System.out.println("总和为:"+sum);
    
    

    区别:

    while循环时先判断再执行循环体
    do while循环时先执行再判断。   do while循环,至少会执行一次
    
    

    break、continue关键字

    break       结束当前循环
    continue    结束本次继续下一次循环
    
    举例:从键盘输入数字,如果输入0就结束,否则继续输入
    Scanner sc = new Scanner(System.in);        
    while(true){
        int num = sc.nextInt();
        System.out.println("你输入的为:"+num);
        if(num == 0){
            //结束当前循环
            break;
        }
    }
    举例:从键盘输入字符串,如果字符串等于"cnm"获取"wocao",就不输出,否则输出
    Scanner sc = new Scanner(System.in);    
    while(true){
        System.out.println("请输入......");
        String s = sc.next();            
        /*
            if(s.equals("cnm")||s.equals("wocao")){
                continue;//结束本次循环继续下次循环
            }
        */                
        if(!s.equals("cnm")&&!s.equals("wocao")){
            System.out.println("你在说:"+s);
        }                    
    }
    
    

    嵌套循环

    代码演示

    *****
    *****
    *****
    *****
    *****
    for(int j=0;j<5;j++){//外层循环负责行数    
    
        for(int i=0;i<5;i++){//内层循环负责次数    
            System.out.print("*");
        }
        //换行
        System.out.println();
    }
    *
    **
    ***
    ****
    *****
    ******
    for(int i = 0; i < 6 ;i++){  // 行            
                for(int j = 0; j <= i ;j++ ){ //列
                    System.out.print("*");
                }            
                System.out.println();
            }
    ******
    *****
    ****
    ***
    **
    *
    for(int i = 0; i < 6; i++){
    
                for(int j = 0; j < 6-i ;j++){
                    System.out.print("*");
                }
    
                System.out.println();
            }
         *
        **
       ***
      ****
     *****
    ******
    for(int i = 0; i < 6; i++){
        for(int j=0;j< 6-i-1;j++){
            System.out.print(" "); 
        }
    
        for(int k =0;k <= i ;k++){
            System.out.print("*"); 
        }            
        System.out.println();            
    }
    *******
    *      *
    *     *
    *      *
    *      *
    *      *
    *******
    for(int i = 0; i< 6;i++){ //行            
                for(int j = 0; j < 6; j++){
                    if(i == 0 || i == 5 || j == 0 || j == 5){
                        System.out.print("*");
                    }else{
                        System.out.print(" ");
                    }                 
                }            
                System.out.println();
            }
    1*1=1
    1*2=2   2*2=4
    1*3=3   2*3=6   3*3=9
    1*4=4   2*4=8   3*4=12  4*4=16
    1*5=5   2*5=10  3*5=15  4*5=20  5*5=25
    1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36
    1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49
    1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64
    1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81
     //九九乘法表        
    for(int i = 1; i <= 9;i++){
          for(int j = 1; j <= i; j++){
              System.out.print(j+"*"+i+"="+(i*j)+"\t");
          }
         System.out.println();
    }
    
    

    相关文章

      网友评论

        本文标题:003-控制流程语句if,elseif,switch,for,w

        本文链接:https://www.haomeiwen.com/subject/yobiehtx.html