欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

流程控制语句

程序员文章站 2023-12-25 23:28:09
...

一、顺序结构

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

二、分支结构

  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("您输入的运算符有误");
    }
    }

}

上一篇:

下一篇: