流程控制语句

作者: YYece | 来源:发表于2017-10-25 15:06 被阅读0次

    一、顺序结构

    顺序结构:是程序中最简单的基本流程控制,没有特定的语法结构,按照先后顺序,依次执行。总的来说就是前面的先执行,后面的后执行。

    二、分支结构

    1. if语句(单分支)
    if(条件表达式){
    
                           执行语句;
    
                     }
    
    • 注:表达式的结果是一个布尔值,如果是true,直接进入if的方法体中,如果结果为false,则跳过if的方法体,继续执行。
    1. if....else 语句(双分支)
    if(表达式){
           语句组1
              }
    
    else  {
           语句组2
              }
    
    • 注: 双分支结构else必须与if 配对使用,若else空缺则构成单分支结构
    1. if...else if 语句(多分支)
    if(表达式1){
           语句组1
              }
    
    else  if(表达式2)  {
           语句组2
              }
    
    else  if (表达式3) {
           语句组3
              }
    .......
    
    else  if (表达式n) {
           语句组n
              }
    else  {    //可以省略
           语句组n+1
              }
    

    三、选择结构

    switch语句

    switch(表达式){
    
        case 值1:
    
             执行语句1;
    
         break; // switch的表达式 只能是 byte、short、int、char;
    
    case 值2: // case的语句是无序的;case 的值同时加载到内存中;
    
             执行语句2;   //   找到对应的case值作为程序入口,使用break语句来作为结束;
    
     break;                                
    
      ……
    
     default:
    
                执行语句;
    
        break;(可以省略)
    
     }
    
    • 注:

    1,switch语句中不能忘记break,否则会有贯穿现象。

    2,switch的应用有所限制,其表达式只能应用于byte,short,int,char

    • if语句和switch语句的异同点:
               if:
      
                  1、对具体的值进行判断;
      
                  2、对区间进行判断;
      
                  3、对运算结果是boolean类型的表达式进行判断;
      
               switch:
      
                  1、对具体的值进行判断;
      
                  2、值的个数必须是有限的;
      

      三、循环语句

    1.while语句

      while(条件表达式){
    
                                  循环语句;
    
                   }
    
    1. do....while语句
    do{
    
                              循环语句;
    
                         }while(条件表达式);
    
    • do..while 语句的特点:无论条件是否满足,都会执行至少一次;
    1. for语句
                   for(初始化表达式;条件表达式;循环后表达式){
    
                                  循环语句;
    
                   }
    
    • for循环的执行顺序:首先执行初始化表达式,判断循环条件,如果条件返回值为true,执行循环语句,然后执行循环后表达式,再次判断循环条件

    • for循环与while循环的关系:
      1、for与while可以互换;
      2、for循环可以将变量定义到初始化表达式中,如只需要将该变量应用在循环体中,建议使用for循环,可以及时释放内存空间;

    • 循环需要注意的情况:
      1、需要有循环的条件;
      2、需要控制循环的次数;

    否则就会变成无限循环(无限占用内存):

                   while(true){
    
                                  循环语句;
    
                   }
    或
                   for( ;;){
    
                                  循环语句;
    
                   }
    
      1. 终止循环:

    (1)break

    • 注:1、break必须使用在switch或者循环语句中;
      2、在switch或循环语句中,break单独使用时,下面不允许有代码语
      句;
      3、默认情况下,break只能跳出语句所属的最近一层循环;

    (2) continue;

    • 注:continue是终止本次循环(只能在循环内部),继续下一次循环;

    • 如果想要指定循环跳出的位置,可以使用给循环添加标记的方式,跳出时指明跳出位置即可;

               flag1:(over)
          for( ;;){
      
                              循环语句;
      
                              break flag1(over);
      
               }
      
    1. foreach语句

    Java5引入了一种主要用于数组的增强型for循环,进行数组的遍历。

          for (声明语句 : 表达式) {
                //代码句子
             }
    
    • 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

    • 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

    四、练习

    //1.编写一个程序,读取用户输入的3个非零数据,判断并输出这3个值是否能组成一个三角形的3条边。
    package excise;
    import java.util.Scanner;
    public class practice1 {
    
        public static void main(String[] args) {
            
            Scanner s = new Scanner(System.in);
            System.out.println("请输入三个非零数:\n");
            
            System.out.printf("a= ");
            double a = s.nextDouble();
            
            System.out.printf("b= ");
            double b = s.nextDouble();
            
            System.out.printf("c= ");
            double c = s.nextDouble();  
            
            if (a+b>c & a+c>b & b+c>a) {
                System.out.println("能组成一个三角形");
            }
            else
                System.out.println("不能组成一个三角形");
        }
    
    }
    
    //2.用switch语句编写一个完成两个整数四则运算的程序
    package excise;
    import java.util.Scanner;
    public class practice2 {
    
        public static void main(String[] args) {
            Scanner s = new Scanner(System.in);
            
        System.out.println("请输入运算符:");
        
        String  operato = s.nextLine();
        
        System.out.println("请输入两个整数:");
        
        System.out.printf("a=");
        int a = s.nextInt();
        
        System.out.printf("b=");
        int b = s.nextInt();
        
        switch(operato) {
        case "+":
            System.out.println(a + operato + b +"=" +(a+b));
            break;
        case "-":
            System.out.println(a + operato + b +"=" +(a-b));
            break;
        case "*":
            System.out.println(a + operato + b +"=" +(a*b));
            break;
        case "/":
            System.out.println(a + operato + b +"=" +(a/b));
            break;
            default:
                System.out.println("您输入的运算符有误");
        }
        }
    
    }
    

    相关文章

      网友评论

        本文标题:流程控制语句

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