Java流程控制语句(Ⅰ)

简介: 控制语句

流程控制语句

1.Java中的流程控制语句
  • 三类

    • 顺序结构语句:从进入到程序的入口之后,代码从上而下依次加载

      • 如: 从main进来之后,直接去输出,依次输出...
    • 选择结构语句:

      • if语句-----开发中使用比较多的,尤其格式2:if...else...
      • switch语句
    • 循环结构语句:

      • for
      • while
      • do-while
2.选择结构语句之if
  • 格式一:

    • 判断表达式是否成立,如果成立,则执行语句,否则不执行;
    • 注意事项:

      • if()后面不能带分号
      • 有分号的地方就不能{,有{的地方,不能有分号

            if(表达式){
                
                语句;
            }
//导包
import java.util.Scanner ;

public class IfDemo1{
    
    public static void main(String[] args){
            //创建键盘录入对象
            Scanner sc = new Scanner(System.in);
            //提示并录入数据
            System.out.println("请输入一个数据num:");
            int num = sc.nextInt();
            
            //判断
            if(num >=15){
                System.out.println("num大于等于15");
            }
            System.out.println("over");
        
    }
}
  • 格式二:

    • 执行流程:

      • 首先判断表达式是否成立,如果成立,则执行语句1...
      • 如果不成立,执行语句2...

                if(表达式){        
                    语句1 ...;
                }else{
                    语句2...;
                }
//导包
import java.util.Scanner;

public class IfDemo2{    

    public static void main(String[] args){
    
    //创建键盘录入对象
    Scanner sc = new Scanner(System.in);
    
    //提示并录入数据
    System.out.println("请输入第一个数据:");
    int a = sc.nextInt();
    
    System.out.println("请输入第二个数据:");
    int b = sc.nextInt();
    
    //if...else... 流程语句

    //方式1:直接使用变量接收 (推荐第一种)
    //定义一个变量
    int max;
    if(a > b){
        //将a的值赋值给max
        max = a; 
        
        //System.out.println(a+"是最大值");
    }else {
        //将b的值赋值给max
        max = b ;
        //System.out.println(b+"是最大值");
    }
    
    System.out.println("max:" + max);
    
    System.out.println("----------------------------------"); 
    
    //方式2:直接输出
    if(a > b){
        System.out.println(a + "是最大值");
    }else {
        System.out.println(b + "是最大值");
        }
    }
}
  • 格式三:

    • 执行流程:

      • 先判断表达式1是否成立,成立,执行语句1
      • 如果不成立,继续判断表达式2是否成立,成立,则执行语句2,,,

            ...
        
      • 如果上面的表达式都不成立,执行else中的语句n..

                if(表达式1){
                        语句1 ...;
                }else if(表达式2){
                    语句2...;
                    ...
                }else{
                    语句n...;
                    
                }
//导包
import java.util.Scanner ;

class IfDemo4{
    
public static void main(String[] args){
    //创建键盘录入对象
    Scanner sc = new Scanner(System.in) ;
    //提示,录入数据
    System.out.println("请输入学生的成绩:") ;
    int  socre = sc.nextInt() ;
    
    /*
        90-100    优秀 
        80-90     较好
        70-80     良好
        60-70     及格
        60以下    不及格
    */
    //if格式3
    /*
    if(socre>=90 && socre<=100){
        System.out.println("优秀") ;
    }else if(socre>=80 && socre<90){
        System.out.println("较好") ;
        
    }else if(socre>=70 && socre<80){
        System.out.println("良好") ;
    }else if(socre>=60 && socre<70){
        System.out.println("及格") ;
    }else{
        System.out.println("不及格") ;
    }
    */
    
    //学习任何计算机语言:程序---最终给客户去用的,考虑开发完成之后,自测
    //测试 :正确的数据 ,错误数据,边界数据
    
    //优化:最终版:加入一些非法数据的提示
    if(socre>100 || socre<0){
        System.out.println("您输入的数据不合法") ;
    }else if(socre>=90 && socre<=100){
        System.out.println("优秀") ;
    }else if(socre>=80 && socre<90){
        System.out.println("较好") ;
    }else if(socre>=70 && socre<80){
        System.out.println("良好") ;
    }else if(socre>=60 && socre<70){
        System.out.println("及格") ;
    }else{
        System.out.println("不及格") ;
    }
    
        //jvm:java虚拟机 校验你的语法的时候,需要校验语法的整个结构,考虑如果if的里面都不成立,这个程序没有结束;
        //就会出现问题;
        
    }

}
  • if...else...嵌套

    • 格式

      if(表达式1){
                      if(表达式2){
                          
                          语句1;
                      }else{
                          语句2;
                      }
                  
              }eles{
                  if(表达式3){
                          
                          语句3...;
                      }else{
                          语句4...;
                      }
                  
              }
      import java.util.Scanner ; 
      class IfTest{
          
          public static void main(String[] args){
              
              //创建键盘录入对象
              Scanner sc = new Scanner(System.in) ;
              
              //提示并录入数据
              System.out.println("请输入第一个数据:") ;
              int num1 = sc.nextInt() ;
              
              System.out.println("请输入第二个数据:") ;
              int num2 = sc.nextInt() ;
              
              System.out.println("请输入第三个数据:") ;
              int num3 = sc.nextInt() ;
              
              
              
              int max ; 
              if(num1>num2){
                  //语句----if...else
                  if(num1>num3){
                      max = num1 ; //num1大
                  }else{
                      max = num3 ; //num3大
                  }
                  
              }else{
                  
                  //num2比num1大
                  if(num2>num3){
                      //将num2赋值max
                      max = num2 ;
                  }else{
                      //将num3赋值给max
                      max = num3 ;
                  }
                  
              }
              System.out.println("三个数据的最大值是:"+max) ;
              
              
          }
      }
3.选择结构语句之switch
  • 格式

     switch(表达式或者某个变量值){
               case  值1:
                          语句1;
                          break ;
               case  值2:
                          语句2:
                          break ;
               ...
    
               default:
                          语句n;
                          break ;
               }
    /*需求:
               键盘录入一个值,判断星期
                      1,星期一
                      2,星期二
                      3,星期三,
                      4,星期四
                      5,星期五
                      6,星期六
                      7,星期日 */
    import java.util.Scanner;
    
    public class SwicthDemo {
    
        public static void main(String[] args) {
            //创建键盘录入对象
            Scanner sc = new Scanner(System.in) ;
            //提示并录入数据
            System.out.println("请输入一个星期(1-7的数据): ") ;
            int week = sc.nextInt() ;
      switch (week){
                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 ;
                case 6:
                    System.out.println("星期六") ;
                    break ;
                case 7:
                    System.out.println("星期日") ;
                    break ;
                default :
                    System.out.println("非法数据") ;
                    break ;
            }
        }
    }
  • 执行流程

    • switch接收结果

      • 接收的结果和case后面的值1进行对比,成立,执行语句1,break 结束语句;
      • 值1和switch接收的结果不匹配,和值2进行比较,成立,执行语句2, break,结束语句;
      • ...
      • 如果上面case都不匹配,执行default语句,语句n,break ,结束...
  • switch后面的跟的值的数据类型可以有哪些类型?

    • 基本数据类型:byte,short,int,char
    • jdk5以后可以是枚举类型 enum:引用类型
    • jdk7以后可以是String字符串 :引用类型
  • switch语句中的注意事项也是 (考点)

    • 关于switch中的case语句后面只能常量,不能是变量 (体现Java是一种强类型语言)

      *  前端的javascript(弱类型语言):它里面的swtich的case是可以是变量,可以是个常量 
      
    • 在书写switch语句的标准结构,不忘了break,如果语句中忘了书写break,会出现一个现象:case穿透!

      public class SwitchTest {
          public static void main(String[] args) {
               
              // case穿透   
              int a = 3 ;
              int b = 4 ;
              switch (a){//3
                  default:
                      b++ ;
                      break;
                  case 2:
                      b ++;
                  case 3://匹配成功
                      b++ ; //4 ++ = 5
                  case 4 :
                      b++ ; // 5++ = 6
              }
              //b的值是多少;
              System.out.println("b:"+b);
       * 在有的需求里面利用  case穿透 来完成一些需求;
      
         ```java
         import java.util.Scanner;
         
         public class SwitchTest2 {
         
             public static void main(String[] args) {
                 //创建键盘录入对象
                 Scanner sc = new Scanner(System.in) ;
                 //提示并录入数据
                 System.out.println("请您输入一个月份的值:") ;
                 int month = sc.nextInt() ;
                 //利用case穿透:灵活运用
                 switch (month){
                     case 3:
                     case 4:
                     case 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("非法数据!!") ;
                         break ;
                 }
             }
         }
         ```
      
    • 关于switch语句的结束条件

      • 要么遇见break结束
      • 程序默认执行到末尾
    • 关于default语句可以在switch语句中的任何位置,不影响语句的执行流程;

      • 不管在任何位置,只要case语句都不匹配,执行default;
      • 如果default语句在语句中,break不要省略
      • 如果default语句的末尾,break可以省略(不建议);
/*
使用switch语句,完成模拟单项选择题操作
*/
import java.util.Scanner;

public class Demo9 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("电视剧《仙剑奇侠传》中,李逍遥的扮演者是谁?");
        System.out.println("请选择以下选项:" + "\n" + "[A.胡歌]" + "\t" + "[B.彭于晏]" + "\t" + "[C.袁弘]" + "\t" + "[D.霍建华]");

        String choice = scanner.next();//使用字符串
        switch (choice){
            case "A":
                System.out.println("恭喜你,回答正确!");
                break;
            case "B":
                System.out.println("对不起,回答错误!");
                break;
            case "C":
                System.out.println("对不起,回答错误!");
                break;
            case "D":
                System.out.println("对不起,回答错误!");
                break;
            default:
                System.out.println("没有该选项 ");
                break ;
        }
        System.out.println("-------------------------------------------------------");
        
         int choice = sc.nextInt() ;
        //将int类型---转换成char
        char choiceNum = (char) choice ;
        System.out.println(choiceNum);
        switch (choiceNum){
            case 'A':                                                //65
                System.out.println("√");
                break ;
            case 'B':                                                //66
                System.out.println("×");
                break ;
            case 'C':                                                //67
                System.out.println("×");
                break ;
            case 'D':                                                //68
                System.out.println("×");
                break ;
            default:
                System.out.println("没有该选项 ");
                break ;
        }
    }
}
目录
相关文章
|
6月前
|
Java
Java的流程控制语句
Java的流程控制语句
|
6月前
|
Java 索引
Java基础教程(6)-Java中的流程控制语句
【4月更文挑战第6天】Java流程控制包括选择(if, switch)、重复(while, do-while, for)和跳转(break, continue, return)语句。选择语句根据条件执行不同路径,if和switch用于单条件和多条件分支。重复语句用于循环,如for循环的初始化、条件和迭代部分,以及while和do-while循环。跳转语句中,break用于立即退出循环,continue结束当前循环迭代,return则从方法中返回。此外,Java的for each循环简化了数组或集合的遍历,但不能控制遍历顺序或索引。
|
6月前
|
Java
java-流程控制语句
java-流程控制语句
35 1
Java 流程控制语句——循环结构
Java 流程控制语句——循环结构
Java 流程控制语句——循环结构
Java 流程控制语句——分支结构
Java 流程控制语句——分支结构
152 0
Java 流程控制语句——分支结构
|
Java
Com.Java.Basis第四课《Java的流程控制语句》
Com.Java.Basis第四课《Java的流程控制语句》
44 0
|
Java
Java 基础入门 | 第四章 流程控制语句
目录程序的三种结构1.顺序结构2.选择结构if选择语句if-else选择语句3.循环结构whlie循环语句do-while循环语句for循环语句4.流程跳转语句break跳转语句continue跳转语句程序的三种结构1.顺序结构计算机执行程序的步骤是从上到
94 0
Java 基础入门 | 第四章 流程控制语句
|
算法 Java
Java练习题——流程控制语句(含力扣题库真题)
给你一个整数x,如果x是一个回文数,打印true,否则,返回false。(注:回文数是指正序和倒序读都是一样的整数。列如,121是回文数,1231不是)
300 0
Java练习题——流程控制语句(含力扣题库真题)
|
Java
Java基础学习——流程控制语句2(进阶版)
Java基础学习——流程控制语句2(进阶版)
79 0
Java基础学习——流程控制语句2(进阶版)
|
Java
Java基础学习——流程控制语句1
当关系表达式的值为true,则执行语句体,否则执行大括号后面的语句;当对一个bollean型进行判断时可以直接在括号内写变量名,而不是使用“==”来进行判断
71 0
Java基础学习——流程控制语句1