Java三大结构

Java 的三大结构

java程序的三种结构

从结构化程序设计角度出发,程序有三种结构:

  顺序结构:

  JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。顺序结构在程序流程图中的体现就是用流程线将程序框自上而地连接起来,按顺序执行算法步骤。

  选择结构:

  if(条件表达式){

    语句;  

  }

 

  意义:if语句对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳过该语句

  条件表达式必须是布尔表达式

  示例:

img View Code

img

 

  if-else双选择结构:如果条件为true执行一个操作,为false执行另一个操作:

   流程图:   img

 示例: 

img View Code

img

  If-elseif-else多选择结构:

  if(布尔表达式1) {

 

    语句块1;

 

  } else if(布尔表达式2) {  

 

    语句块2;

 

  }………

 

  else if(布尔表达式n){

 

    语句块n;

 

  } else {

 

    语句块n+1;

 

  }

 

  逐条对if语句进行判断,条件匹配,进入语句体不再进行判断,否则对if语句继续判断匹配

  img

  

img View Code

img

  switch多选择结构

  根据表达式值的不同执行许多不同的操作

  Switch语句:case标签必须是整数或者枚举,不能是字符串。 

  switch (表达式) {

 

    case 值1:

 

      语句序列;

 

      [break];

 

    case 值2:

 

     语句序列;

 

      [break];

 

     … … … … …

 

    [default:

 

     默认语句;]

 

}

  switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾

 

 与任一case值不匹配,则进入default语句(如果有的话)

 img

img View Code

img

 

根据输入的月份,打出该月份的天数(不需要考虑润年、闰月)

 

复制代码

    int month =(int)(1+Math.random()*12); 
          if(month>0&&month<13){
              switch (month) {
              case 2:
                  System.out.println("28天");
                  break;
              case 4:
              case 6:
              case 9:
              case 11:
                  System.out.println("30天");
                  break;
              default:
                  System.out.println("31天");
              }
           
          // 31:1,3,5,7,8,10,12 30:4,6,9,11   28:2

          }else{
              System.out.println ("月份不合法!");
          }

复制代码

img

  循环结构:

  while语句格式

 

  while (布尔表达式) {

 

 循环体;

 

  }

 

在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前重新计算一次。

语句中应有使循环趋向于结束的语句,否则会出现无限循环–––"死"循环。

img

复制代码

public class WhileTest {
  public static void main(String[] args) {
      int i = 0;
      int sum = 0;
      while (i <= 100) {   // 1+2+3+…+100=?
          sum += i;   //sum = sum+i;
          i++;
      }
      System.out.println("Sum= " + sum);
  }
}

复制代码

img

  while语句结构

  do{

    循环体;

  }while(布尔表达式);

  先执行循环体,后判断boolean表达式,循环体至少执行一次,而while循环可能一次都不执行

示例:

 

复制代码

1 public static void main(String[] args) {
2         int i=0;
3         int sum = 0;
4         do{
5             sum +=i;
6             i++;
7         }while(i<=100);
8         System.out.println(sum);
9 }

复制代码

 

 

 

img

  For循环

  For循环语句是支持迭代的一种通用结构,是最有效最灵活的循环结构

  语法形式:

  for(循环变量初始化; 布尔表达式;循环变量改变语句)

  img

  

n for循环在第一次反复之前要对循环变量进行初始化。随后,它会进行条件测试,而且在每一次反复的时候,循环变量进行某种形式的“改变”。

  1. 初始化部分设置循环变量的初值

  2. 条件判断部分为任意布尔表达式

  3. 迭代因子控制循环变量的增减

复制代码

public static void main(String[] args){
      int sum = 0;
      for (int i = 0; i <= 100; i++) {
          sum += i;
      }
      System.out.println("Sum= " + sum);
  }

复制代码

 

img

如何使用循环结构呢?

  当不知道执行次数循环次数的时候使用while循环,当至少执行一次的时候使用do...while循环,当有明确循环次数哦的时候使用for循环

  一般而言,能用while循环的都可以用for循环解决,而且for循环看着更加整洁大方

break语句和continue语句

  在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句

 

复制代码

public class BreakTest {
      public static void main(String[] args) {
        int total = 0;
        System.out.println("Begin");
        while(true) {
            total++;
            int i = (int)Math.round(100 * Math.random());
            if(i == 88) break;
        }
        System.out.println("Game over, used " + total + " times.");
      }
  }

复制代码

 

img

 

当条件满足时,退出当前循环。不再执行以后的循环

  continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

把100~150之间**不能被3整除的数输出:**

 

复制代码

public class ContinueTest {
  public static void main(String[] args) {
                  int count = 0;
          for (int i = 100; i < 150; i++) {
          if (i % 3 == 0){
              continue;  
          }
          System.out.println(i);
          }
  }
}            

复制代码

无限循环的第二种形式是for(;;)。编译器将while(true)与for(;;)看作同一回事。

用循环求九九乘法表:

复制代码

public class HomeWork1{
  //九九乘法表
  public static void main(String[] args){
      for(int i=1;i<10;i++){
          for(int j=1;j<=i;j++){
              System.out.print(i+"*"+j+"="+i*j+"\t");
          }
          System.out.println();
      }
  }
}

复制代码

img

while和do...while

  1. 对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。

  2. do...while循环和while循环相似,不同的是,do...while循环至少会执行一次。

while和do...while的区别:

  1. while先判断后执行。do...while是先执行后判断!

  2. Do...while总是保证循环体会被至少执行一次!这也是他们的主要区别。

package com;

public class whileDemo01 {

public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 0;
while(i<0){
System.out.println(i);
i++;
}

System.out.println("=========================");

do{
System.out.println(i);
i++;
}while(i<0);
}

}

结果为:

=================

0

posted @ 2020-09-10 23:56  墨染念颖  阅读(962)  评论(0编辑  收藏  举报