程序流程控制

  • 目录

    顺序结构

    分支结构

    if-else(条件判断结构)

    switch-case

    循环结构

    for

    while

    do-while


    顺序结构

  • 分支结构

    • if-else(条件判断结构)

      • 二选一

      • 多选一
      • 如果多个条件表达式之间是“互斥”关系(没有交集),哪个判断和执行的语句在上边还是下边,无所谓。
      • 如果多个条件表达式之间有交集的关系,要根据实际情况判断哪个结构生命在上边
      • 如果多个条件表达式之间有包含的关系,通常情况下,将范围小的声明在范围大的上边,否则,范围小的没有机会执行。
      • //键盘输入三个数字,按照从大到小的顺序输出   
         Scanner sc=new Scanner(System.in);
            System.out.println("输入数字a:");
            int a=sc.nextInt();
            System.out.println("输入数字b:");
            int b=sc.nextInt();
            System.out.println("输入数字c:");
            int c=sc.nextInt();
        
            if(a>b){
               if(c>a){
                   System.out.println(c+","+a+","+b);
               }else if(c<b){
                   System.out.println(a+","+b+","+c);
               }else{
                   System.out.println(a+","+c+","+b);
               }
            }else{
                if(c>b){
                    System.out.println(c+","+b+","+a);
                }else if(c<a){
                    System.out.println(b+","+a+","+c);
                }else{
                    System.out.println(b+","+c+","+a);
                }
        
            }

    • switch-case

      •  switch(表达式)中表达式的值必须是下述几种类型之一:byte,short, char,int,枚举 (jdk 5.0),String (jdk 7.0);
      • case子句中的值必须是常量,不能是变量名或不确定的表达式值;
      • 同一个switch语句,所有case子句中的常量值互不相同;
      • break语句用来在执行完一个case分支后使程序跳出switch语句块;如 果没有break,程序会顺序执行到switch结尾 ;
      • default子句是可任选的。同时,位置也是灵活的。当没有匹配的case时, 执行default,相当于if-else中的else;
      • 使用switch-case的,都可以改写为if-else,反之不成立;
    • package TEST;
      
      import java.util.Scanner;
      
      public class test {
          public static void main(String[] args) {
              int num=2;
              switch(num){
                  case 0:
                      System.out.println("zero");
                      break;
                  case 1:
                      System.out.println("one");
                      break;
                  case 2:
                      System.out.println("two");
                      break;
                  case 3:
                      System.out.println("three");
                      break;
                  default:
                      System.out.println("other");
                      
              }
          }
      }
      
  • 循环结构

    • 在某些条件满足的情况下,反复执行特定代码的功能

      • 循环语句的四个组成部分.

        • 循环条件部分(test_exp)
        • 循环体部分(body_statement)
        • 初始化部分(init_statement)
        • 迭代部分(alter_statement)
    • for

      • 语法格式
        • for (①初始化部分; ②循环条件部分; ④迭代部分){③循环体部分;}
        • ②循环条件部分为boolean类型表达式,当值为false时,退出循环
        • ①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔
        • ④可以有多个变量更新,用逗号分隔
        • 执行过程:①-②-③-④-②-③-④-②-③-④-.....-②
        • package TEST;
          
          import java.util.Scanner;
          /*
          */
          public class test {
              public static void main(String[] args) {
          //输入两个正整数m和n,求其最大公约数和最小公倍数。
                  Scanner sc=new Scanner(System.in);
                  System.out.println("请输入正整数m:");
                  int m=sc.nextInt();
                  System.out.println("请输入正整数n:");
                  int n=sc.nextInt();
                  //获取两个数中较小值
                  int min=(m>n)?m:n;
                  for(int i=min;i>=1;i--){//最大公约数要小于较小的那个数
                      if(m%i==0&&n%i==0){
                          System.out.println("最大公约数为"+i);
                          break;//跳出循环
                      }
                  }
                  //获取两个数中较大值
                  int max=(m>n)?m:n;
                  for(int i=max;i<=m*n;i++){//最小公倍数要大于较大的那个数,小于两个数字的乘积
                      if(i%m==0&&i%n==0){
                          System.out.println("最小公倍数是"+i);
                          break;
                      }
                  }
              }
          }
          

      • while

        • 语法格式:①初始化部分while(②循环条件部分){③循环体部分;④迭代部分;}
        • 执行过程:①-②-③-④-②-③-④-②-③-④-...-②
        • for循环和while循环可以相互转换
        • 要注意迭代条件,丢失迭代条件会出现死循环
      • do-while

      • 语法格式①初始化部分;do{③循环体部分④迭代部分}while(②循环条件部分);
      • 执行过程:①-③-④-②-③-④-②-③-④-...②
      • 说明:do-while循环至少执行一次循环体。
        • package TEST;
          
          import java.util.Scanner;
          /*
          */
          public class test {
              public static void main(String[] args) {
          
                  int num=1;
                  int sum=0;
                  int count=0;
                  do{
                      if(num%2==0){
                          System.out.println(num);
                          sum+=num;
                          count++;
                      }
                      num++;
                  }while (num<=100);
                  System.out.println("总个数"+count);
                  System.out.println("总和为"+sum);
              }
          }
          
        综合训练
      • package TEST;
        
        import java.util.Scanner;
        /*
        */
        public class test {
            public static void main(String[] args) {
        //从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。
               Scanner sc=new Scanner(System.in);
                int zheng=0;//正数个数
                int fu=0;//负数个数
               while(true){
                   System.out.println("请输入数字:");
                   int num=sc.nextInt();
                   
                   if(num>0){
                       zheng++;
                   }else if(num<0){
                       fu++;
                   }else {
                       break;
                   }
               }
                System.out.println("输入正数个数为"+zheng+","+"输入负数个数为"+fu);
            }
        }
        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值