流程控制

Posted shengyang17

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了流程控制相关的知识,希望对你有一定的参考价值。

 

 程序流程控制

流程控制语句结构:
1、顺序结构
    语句的关系是从上到下依次执行的顺序关系,中间没有任何判断和跳转;
    它是最基本的结构,Java程序总体来说都是从main()依次执行
2、分支结构; 根据条件,选择性地执行某段代码,有if--else 和switch两种分支语句。
3、循环结构;根据循环条件,重复性地执行某段代码,有while、do--while、for三种循环语句。jdk1.5提供了foreach循环,方便的遍历集合、数组元素。
        

 

一、顺序结构 如:

键盘输入程序的步骤:
1、先准备键盘输入的工具类的对象 --》比喻成准备键盘 java.util.Scanner input = new java.util.Scanner(System.in); 第一:Scanner是首字母是大写 第二:System也是首字母大写 第三:左右两边一样java.util.Scanner 第四:其他照抄,input可以自己命名,代表了键盘输入工具 2、提示输入 System.out.println(xxx); 3、输入 输入字符串:input.next(); 输入整数: input.nextInt(); input.nextLong(); 输入小数:input.nextFloat(); input.nextDouble(); 输入布尔:input.nextBoolean() 输入一个字符:input.nextChar();错误的 input.next().charAt(0); */ class TestInput{ public static void main(String[] args){ //从键盘输入姓名和年龄等 java.util.Scanner input = new java.util.Scanner(System.in); System.out.print("请输入姓名:"); String name = input.next();//从键盘输入一个字符串,保存到name变量中。 System.out.print("请输入年龄:"); int age = input.nextInt(); System.out.print("请输入体重:"); double weight = input.nextDouble(); System.out.print("请输入是否已婚(true/false):"); boolean isMarry = input.nextBoolean(); System.out.print("请输入性别:"); char gender = input.next().charAt(0); System.out.println("姓名:" + name); System.out.println("性别:" + gender); System.out.println("年龄:" + age); System.out.println("体重:" + weight); System.out.println("是否已婚:" + (isMarry?"是":"否")); } }

 

二、分支结构
1)条件判断:if..else  单分支条件判断、双分支条件判断、多分支条件判断、嵌套。)
2)选择结构:switch..case

(一)条件判断系列(if语句3种格式:单、双、多)
1、单分支条件判断;  只有一个选项,要么成立就做,要么不成立什么也不干。
语法结构:
    if(条件表达式){
        当条件表达式成立时,需要执行的语句块;
    }

说明:
(1)if(条件表达式)中的条件表达式的结果必须是boolean值,即要么是true要么是false
(2){}中是语句块,意思就是可以是一句或多句
(3){}中的语句块只有一条语句时,这个{}是可以省略的,但是不建议大家省略。

执行的特点:
    if()条件成立就执行{}中的语句块,不成立就不执行。
    
2、双分支条件判断 ;(二选一)
语法结构:
    if(条件表达式){
        当条件表达式成立时,执行的语句块1;
    }else{
        当条件表达式不成立时,执行的语句块2;
    }

说明:
(1)if(条件表达式)中的条件表达式的结果必须是boolean值,即要么是true要么是false
(2){}中是语句块,意思就是可以是一句或多句
(3){}中的语句块只有一条语句时,这个{}是可以省略的,但是不建议大家省略。

执行特点:
        双分支结构,一定会执行其中的一个分支,即二选一执行。
        当条件表达式成立时,执行的语句块1;不成立,就执行语句块2;
        
        
        if(num%2==0){
            System.out.println(num + "是偶数");
            System.out.println(num + "是双数");
        }else{
            System.out.println(num + "是奇数");
        }
        
        /*
        //两个单分支
        if(num%2==0){
            System.out.println(num + "是偶数");
            System.out.println(num + "是双数");
        }
        if(num%2!=0){
            System.out.println(num + "是奇数");
            System.out.println(num + "是单数");
        }
        */
3、多分支条件判断:多选一
语法结构:
    if(条件表达式1){
        当条件表达式1成立时,执行的语句块1;
    }else if(条件表达式2){
        当条件表达式1不成立时,而条件表达式2成立,执行的语句块2;
    }else if(条件表达式3){
        当条件表达式1和2都不成立时,而条件表达式3成立,执行的语句块3;
    }....
    else{
        当以上所有条件都不成立时,执行语句块n+1;
    }
    
说明:
(1)if(条件表达式)中的条件表达式的结果必须是boolean值,即要么是true要么是false
(2){}中是语句块,意思就是可以是一句或多句
(3){}中的语句块只有一条语句时,这个{}是可以省略的,但是不建议大家省略。
(4)如果多个条件之间的关系是“互斥”关系,它的顺序是随意的 是“包含”关系,它的顺序有要求,范围小的在上,范围大的在下;

执行的特点:
        从上往下依次判断条件,如果有一个条件成立了,后面的条件都不看了;
        如果最后有单独的else,那么以上条件都不成立,就执行最后else中的;
        如果最后没有单独的else,那么以上条件都不成立时,就什么也不执行。
        多个分支中最多执行一个。
/*
        if(score==100){
            System.out.println("满分");
        }else if(score>=80 && score<=99){
            System.out.println("优秀");
        }else if(score>=70 && score<80){
            System.out.println("良好");
        }else if(score>=60 && score<70){
            System.out.println("及格");
        }else{
            System.out.println("不及格");
        }
        */
        if(score==100){
            System.out.println("满分");
        }else if(score>=80){
            System.out.println("优秀");
        }else if(score>=70){
            System.out.println("良好");
        }else if(score>=60){
            System.out.println("及格");
        }else{
            System.out.println("不及格");
        }
4、嵌套:
    当外层情况满足了,才会判断嵌套在里面的条件。

前提条件是[0,100]
        //如果是100分,显示满分
        //如果是[80-99],显示优秀
        //如果是[70,80),显示良好
        //如果是[60,70),显示及格
        //其他的显示不及格
如果成绩不再[0,100],提示它输入错误    
/*
        if(score>=0 && score<=100){
            if(score==100){
                System.out.println("满分");
            }else if(score>=80){
                System.out.println("优秀");
            }else if(score>=70){
                System.out.println("良好");
            }else if(score>=60){
                System.out.println("及格");
            }else{
                System.out.println("不及格");
            }
        }else{
            System.out.println("成绩的范围是:[0,100]");
        }
        */
        
        if(score<0 || score>100){
            System.out.println("成绩的范围是:[0,100]");
        }else{
            if(score==100){
                System.out.println("满分");
            }else if(score>=80){
                System.out.println("优秀");
            }else if(score>=70){
                System.out.println("良好");
            }else if(score>=60){
                System.out.println("及格");
            }else{
                System.out.println("不及格");
            }
        }

(二)选择结构 ( switch()  case :    default: )
语法格式:
    switch(表达式){
        case 常量值1:
            语句块1;
            break;
        case 常量值2:
             语句块2;
             break;
        case 常量值3:
            语句块3;
            break;
        default:
            语句块n+1;
            break;
    }
    
说明:
    (1case后面必须是常量值;2)case后面的常量值不能重复3)switch(表达式)中表达式的结果的类型有要求:
            四种基本数据类型:byte,short,int,char
            两种引用数据类型:JDK1.5之后开始支持枚举类型,JDK1.7之后开始支持String类型

执行过程:1)入口
    A:当switch(表达式)中表达式的值与某一个case后面的常量值“匹配”,就从这个case进入;
    B:如果存在default,那么当所有的case都无法匹配时,从default进入;
(2)出口    
    A:自然出口:switch的结束}
    B:中断出口:break;

一定找到“入口”,就会一直往下运行,直到遇到“出口”

可以用switch..case,一定可以用if..else实现,
但是有的时候,用switch...case效率更好,可读性更好    

当条件判断是常量==比较时,可以改用switch..case

 

 

/*
1.格式:三种
2.执行if-else语句时,一定会选择其中的一个路径执行,而且仅选择一条路径。
*/
class TestIf1 {
    public static void main(String[] args) {
        int age = 28;

        if (age > 18){
            System.out.println("");
        }else{
            System.out.println("");

        if (age > 130 || age < 0){
            System.out.println("");
        }else if(age < 30){
            System.out.println("");
        }else{
            System.out.println("");
        }

        if(age < 30){
        }else if(age < 60){
        }else if(age < 100){
        }else{
        }


    }
}

 

 

//1.导包
import java.util.Scanner;
class TestScanner{
    public static void main(String[] args) {
        //2.创建一个Scanner类的对象
        Scanner s = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        //3.调用此对象的相应的方法,完成键盘输入的值的获取
        //next():表示从键盘获取一个字符串
        String str = s.next();

        System.out.println(str);


    }
}

 

/*
从键盘输入小明的期末成绩;
当成绩为100分时,奖励一辆BMW;
当成绩为(80, 90)时,奖励一个iphone8;
当成绩为[60,80)时,奖励一本参考书;
其他,什么也没有。
1.条件判断之间可以嵌套;
2.如果多个条件之间是互斥关系,多个条件语句上下顺序是自由的。
  如果多个条件之间存在包含关系,要求范围小的写在范围大的上面。
*/
import java.util.Scanner;
class TestIf2{
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.println("请输入小明的成绩:(分)");
        int score = s.nextInt();

        if (score >100 || score < 0){
            System.out.println("你输入的数值有误!");
        }else{
            if(score == 100){
                System.out.println("奖励一辆BMW");
            }else if(score > 80){ //(score > 80 && score <=99)
                System.out.println("奖励一个iphone8");
            }else if(score >= 60){ //(score >= 60 && score <=80) //范围大的写下边哦
                System.out.println("奖励一本书");
            }else{
                System.out.println("上面也没有");
            }
        }

    }
}

 

 

 

 

/*
switch(变量){
    case 值1;
    case 值2;
    case 值3;
    default:
    }
1.根据变量的值,选择相应的case去判断,一旦满足条件,就执行case的相应语句;如果没有break或者已经
结尾的话,会继续执行其下的case语句。
2.default:是可选的,而且位置是灵活的。
3.变量可以是哪些类型?char byte short int 枚举 String(jdk1.7)
4.case条件:其中条件只能是值,不能是取值范围
*/

class TestSwitch1 {
    public static void main(String[] args) {
        int i = 5;
        switch(i){
            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");
                break;
        }
    }
}

 

 

/*
对学生成绩大于60的,输出"合格";低于60分的输出"不及格";
说明:
1.当多个case语句处理的语句块一致时,可以统一来写;
2.一定情况下switch-case与if-else之间可以互相转换。
*/
class TestSwitch3{
    public static void main(String[] args) {
        int score = 67;
        if (score >= 60){
            System.out.println("及格");
        }else{
            System.out.println("不及格");
        }
        
        /*
        switch(score){
            case 100:
            ...
            case 0:
            default:
        }
        */
        switch(score / 10){
            case 10:
            case 9:
            case 8:
            case 7:
            case 6:
                System.put.println("及格");
                break;
            case 5:
            case 4:
            case 3:
            case 2:
            case 1:
            case 0:
                System.out.println("不及格");
                break;
            default:
                System.out.println("输入有误");
                break;

    }
}

 

 

/*
编写程序:从键盘上输入2014年的"month"和"day",要求通过程序输入输出的日期为2014年的第几天
*/
import java.util.Scanner;

class TestSwitch4 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.println("请输入月份:");
        int month = s.nextInt();
        System.out.println("请输入日期:");
        int day = s.nextInt();

        int sum = 0;//用来记录month月day日是2014年第几天
        //使用switch-case
        switch(month){
            case 12:
                sum += 30;//30天,十一月的总天数
            case 11:
                sum += 31;
            case 10:
                sum += 30;
            case 9:
                sum += 31;
            case 8:
                sum += 31;
            case 7:
                sum += 30;
            case 6:
                sum += 31;
            case 5:
                sum += 30;
            case 4:
                sum += 31;
            case 3:
                sum += 28;
            case 2:
                sum += 31;//31,是一月份的天数
            case 1:
                sum += day; //最后再加上你输入的当月的天数
            }
            System.out.println(sum);

    }
}

技术分享图片

 

/*
for循环结构:
1.格式:①初始化条件;②循环条件;③迭代条件;④循环体;
        for(①;②;③){
            //④
        }
2.执行过程:①-②-④-③-②-④-③-     -④-③-②
    即直至循环条件不满足,退出循环体
*/
class TestFor {
    public static void main(String[] args) {
        for (int i = 0;i < 4 ;i++ ){
            System.out.println("Hello World!");
        }


        int j = 1;
        for (System.out.print(‘a‘); j < 3 ;System.out.print(‘b‘), j++ ){
            System.out.print(‘c‘);
        }
        //acbcb
    
    //题目:输出100以内的所有偶数及所有偶数的和及偶数的个数
    int sum = 0;
    int count = 0;
    for (int i = 1;i<= 100 ;i++ ){ //100以内的自然数的遍历
        if(i % 2 == 0){
            System.out.println(i);
            sum += i;
            count++;
        }
    }
    System.out.println("总和为:" + sum);
    System.out.println("100以内偶数的个数为:" + count);

    }
}

 技术分享图片

 

/*

①初始化条件;
②循环条件;
③迭代条件;
④循环体;
1.格式:
①
while(②){
    ④
    ③
}

*/
class TestWhile{
    public static void main(String[] args) {
        //100以内的偶数的输出及其和
        int i = 1;
        int sum = 0;
        while(i <= 100){
            if(i % 2 == 0){
                System.out.println(i);
                sum += i;
            }
            i++;
        }
        System.out.println(sum);

    }
}

 

 

/*
1.格式:
①
do{
    ④
    ③
}while(②);

2.do-while与while的区别,do-while循环至少执行一次

*/
class TestDowhile {
    public static void main(String[] args) {
        int i = 1;
        do{
            if(i % 2 == 0){
                System.out.println(i);
            }
            i++;
        }while(i <= 100);

        //do-while 和 while的区别
        int j = 10;
        do{
            System.out.println(j);
            j++;
        }while(j < 10);


        while(j < 10){
            System.out.println(j);
            j++;
        }

    }
}

 

技术分享图片

 

class TestForFor {
    public static void main(String[] args) {
        /*
        *****
        *****
        *****
        *****

        */
        for(int j = 0;j < 4;j++){      //外层循环控制行数
            for(int i = 0;i < 5;i++){  //内层循环控制列数
                System.out.print("*");
            }
            System.out.println();
        }
        /*
        *
        **
        ***
        ****
        */
        for (int j = 0;j < 4 ; j++){      //外层循环控制行数
            for(int i = 0;i < j + 1;i++){ //内层循环控制列数
                System.out.print("*");
        }
        System.out.println();
        }

        /*

        ****
        ***
        **
        *

        */

        for(int i = 0;i < 5;i++){
            for(int j = 0;j < 5-i;j++){ //for(int j = i;j < 5;j++)
                System.out.print("*");
            }
            System.out.println();
        }

        /*
        *
        **
        ***
        ****
        ****
        ***
        **
        *

        */
        for (int j = 0;j < 4 ; j++){      //外层循环控制行数
            for(int i = 0;i < j + 1;i++){ //内层循环控制列数
                System.out.print("*");
        }
        System.out.println();
        }
        for(int i = 0;i < 5;i++){
            for(int j = 0;j < 5-i;j++){ //for(int j = i;j < 5;j++)
                System.out.print("*");
            }
            System.out.println();
        }

/*
打印如下图形:
----*
---* *
--* * *
-* * * *
* * * * *
i  k-  j*  k = 4 - i    j = i + 1
0    4    1
1    3    2
2    2    3
3    1    4
4    0    5

-* * * *
--* * *
---* *
----*
i  k-  j*  k = i + 1   j = 4-i
0  1   4  
1  2   3
2  3   2
3  4   1

*/

        //上半部分
        for(int i = 0;i < 5;i++){
            for(int k = 0;k < 4 - i;k++){
                System.out.print("-");
            }
            for(int j = 0;j < i + 1;j++){
                System.out.print("* ");
            }
            System.out.println();
        }
        //下半部
        for (int i = 0;i < 4;i++){
            for(int k = 0;k < i + 1 ;k++){
                System.out.print("-");
            }
            for(int j = 0;j < 4-i;j++){
                System.out.print("* ");
            }
            System.out.println();
        }

    }
}

 

/*
break:使用在switch-case中或者循环中
如果使用在循环中,表示结束"当前"循环

continue:使用在循环结构中
表示:结束"当次"循环
*/

class TestBreakContinue {
    public static void main(String[] args) {
        for (int i = 1;i <= 10;i++){
            if (i % 4 == 0){
                break;
                //continue;
            }
            System.out.println(i);
        }

        
        label:for (int i =1;i < 5;i++){
            for (int j = 1;j <= 10;j++){
                if (j % 4 == 0){
                    //break;  //写在哪一层就结束哪一层
                    //continue;
                    //break label;
                    continue label;
                }
                System.out.print(j);
            }
            System.out.println();
        }


        
        for (int i = 1;i <= 10;i++){
            if (i % 4 == 0){
                break;
                //continue;
                //在break和continue语句之后不能添加其他语句,永远也不能被执行;
                //System.out.println(我是执行不了的哦);
            }
            System.out.println(i);
        }


    }
}

 

 

技术分享图片

public class TestArray {
    public static void main(String[] args){

        //1.如何定义一个数组
        //1.1数组的声明
        String[] names;
        int scores[];
        //1.2初始化
        //第一种:静态初始化:初始化数组与给数组赋值同时进行。
        names = new String[]{"kris","alex","egon"};
        
        //第二种:动态初始化:初始化数组与给数组元素赋值分开进行。
        scores = new int[4];
        //2.如何调用相应的数组元素:通过数组元素的下角标的方式来调用。
        //下角标从0开始,到n-1结束,其中n表示数组的长度。
        scores[0] = 87;
        scores[1] = 88;
        scores[3] = 90;
        //3.数组的长度:通过数组的length属性。
        System.out.println(names.length);//3
        System.out.println(scores.length); //4
        //4.如何遍历数组元素
//        System.out.println(names[0]);
//        System.out.println(names[1]);
//        System.out.println(names[2]);
        for (int i = 0; i < names.length; i++){
            System.out.println(names[i]);
        }
        
    }
}

 

 

public class TestArray0 {
    public static void main(String[] args){
        
        //对于基于基本数据类型的变量创建的数组:byte short int long float double char boolean
        //1.对于byte short int long而已:创建数组以后,默认值为0
        int[] scores = new int[4];
        scores[0] = 89;
        scores[3] = 90;
        for(int i = 0;i < scores.length;i++){
            System.out.println(scores[i]);
        }
        //2.对于float  double而言;默认值是0.0
        float[] f = new float[3];
        f[0] = 1.2F;
        for(int i = 0; i < f.length;i++){
            System.out.println(f[i]);
        }
        System.out.println();
        
        //3.对于char而言,默认是空格
        char[] c = new char[3];
        for(int i = 0; i < c.length;i++){
            System.out.println(c[i]);
        }
        System.out.println();
        
        //4.对于boolean而言,默认是false
        boolean[] b = new boolean[3];
        for(int i = 0; i < b.length;i++){
            System.out.println(b[i]);
        }
        System.out.println();        
        
        //5.对于引用类型的变量构成的数组而言:默认初始化值为null。以String为例
        String[] strs = new String[4];
        strs[0] = "AA";
        strs[1] = "BB";
        //strs[2] = "CC"; 默认为null
        strs[3] = "DD";
        //遍历数组的元素
        for (int i = 0;i < strs.length;i++){
            System.out.println(strs[i]);
        }
        
        
        //自定义的类
        System.out.println();
        Person[] pers = new Person[3];
        for(int i = 0; i < pers.length;i++){
            System.out.println(pers[i]);
        }
    }
}
class Person{
    
}

 数组在内存中的结构

 

 整个内存里边的基本结构就分这4部分:

技术分享图片

 new出来数组、对象;

方法区:类名、包名、方法的定义等;常量池、字符串常量池等,想用哪个从池子里边拿

静态区:静态的变量,用static修饰的变量等。

以数组为例,看它如何使用内存结构的:

java虚拟机进行解释运行对它进行初始化,栈先进后出,scores变量先存放在栈里边,每个内存里边都对应一个地址;new出来的放在堆里边。通过地址进行对应

 

 

 

技术分享图片

 

 

技术分享图片

 

//数组一旦初始化,其长度是不可变的
public class TestAarry1 {
    public static void main(String[] args){
        int[] i = new int[]{12,13,14};
        int[] j = new int[10];
        for(int k = 0;k < i.length;k++){
            j[k] = i[k];
        }
        j[3] = 15;
        j[4] = 16;
        
        for(int k = 0; k < j.length;k++){
            System.out.println(j[k]);
        }
    }

}

 

 

 技术分享图片

 

package com.du.bai.www;

public class TestArry2 {
    public static void main(String[] args){
        int[] scores1 = new int[10];
        int[][] scores2;
        String[][] names;
        //1.二维数组的初始化
        scores2 = new int[][]{{1,2,3},{3,4,5},{6}}; //静态初始化
        
        names = new String[6][5];//动态初始化的方式一
        names = new String[6][0]; //动态初始化的方式二
        names[0] = new String[5];
        names[1] = new String[3];
        names[2] = new String[7];
        names[3] = new String[9];
        names[4] = new String[2];
        names[5] = new String[4];
        
        //错误的初始化方式
        //names = new String[][];
        //names = new String[][5];
        
        //2.如何来引用具体的某一个元素
        int[][] i = new int[3][2]; //int[] i[] = new int[3][2];
        i[1][0] = 90;
        i[2][1] = 89;
        
        //3.数组的长度
        //二维数组的长度;length属性
        System.out.println(i.length); //3
        //二维数组中元素的长度
        System.out.println(i[0].length); //2
        System.out.println(names.length); //6
        System.out.println(names[4].length); //8
        System.out.println(); 
        
        //4.如何遍历二维数组
        for(int m = 0; m < scores2.length;m++){ //控制行数
            for(int n = 0;n < scores2[m].length;n++){
                System.out.print(scores2[m][n] + "  ");
            }
            System.out.println();
        }
        
    }

}

技术分享图片

 

异常:

public class TestException {
    public static void main(String[] args){
        //1.数组下标越界异常:java.lang.ArrayIndexOutOfBoundsException
        int[] i = new int[10];
        //i[0] = 90;
        //i[10] = 99;
//        for (int m = 0;m <= i.length;m++){
//            System.out.println(i[m]);
//        }
        
        //2.空指针的异常:NullPointerException
        //第一种:
//        boolean[] b = new boolean[3];
//        b = null;
//        System.out.println(b[0]);
        
        //第二种:
//        String[] str = new String[4];
//        str[3] = new String("AA"); //str[3] = "AA";
//        System.out.println(str[3].toString());
        //第三种:
        int[][] j = new int[3][];
        j[2][0] = 12;
    }
}

 

 技术分享图片

 

public class TestGetSum {
    public static void main(String[] args){
        int[][] m = new int[][]{{3,8,2},{2,7},{9,0,1,6}};
        int sum = 0;
        for (int i = 0;i < m.length;i++){
            for(int j = 0;j < m[i].length;j++){
                System.out.print(m[i][j] + "	");
                sum += m[i][j];
            }
            System.out.println();
        }
        System.out.println("总和为:" + sum);
    }

}

 

技术分享图片

 

 

技术分享图片

public class TestYangHui {
    public static void main(String[] args){
        int[][] yangHui = new int[10][];
        //1.初始化二维数组
        for(int i = 0;i < yangHui.length;i++){
            yangHui[i] = new int[i + 1];
        }
        //2.显示的为二维数组的每个元素赋值
        for(int i = 0;i < yangHui.length;i++){
            for(int j = 0;j < yangHui[i].length;j++){
                yangHui[i][0] = yangHui[i][i] = 1;
                
                if (i > 1 && j > 0 && j < i){
                    yangHui[i][j] = yangHui[i - 1][j] + yangHui[i - 1][j - 1];
                    
                }
            }
            
        }
        
        //遍历二维数组
        for(int i = 0;i < yangHui.length;i++){
            for(int j = 0; j < yangHui[i].length;j++){
                System.out.print(yangHui[i][j] + "	");
            }
            System.out.println();
        }
    }

}

 技术分享图片

 

 

技术分享图片

 

public class TestArray3 {
    public static void main(String[] args){
        int[] arr = new int[] {12, 43, 6, 9, 0, -65, -99, 100, 8};
        //最大值
        int max = arr[0];
        for (int i = 1;i < arr.length;i++){
            if(max < arr[i]){
                max = arr[i];
            }
        }
        System.out.println("数组的最大值为:" + max);
        
        //最小值
        int min = arr[0];
        for (int i = 1; i < arr.length;i++){
            if(min > arr[i]){
                min = arr[i];
            }
        }
        System.out.println("数组的最小值为:" + min);
        
        //总和
        int sum = 0;
        for (int i = 0;i < arr.length;i++){
            sum += arr[i];
        }
        System.out.println("总和为:" + sum);
        
        //平均数
        int avg = 0;
        avg = sum / arr.length;
        System.out.println("平均值为:" + avg);
    }

}

 技术分享图片

 

以上是关于流程控制的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

PHP中的流程控制

在导航控制器中杀死片段

Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段

Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段

Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段