Java基础三种基本结构

Posted 程序狒

tags:

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

Java基础三种基本结构

一、顺序结构

顺序结构就是我们最常见的按照顺序从上到下依次执行

package com.struct;

public class ShunXu_Struct {
    public static void main(String[] args) {
        //struct 结构:学习第一个顺序结构
        System.out.println("顺序结构1");
        System.out.println("顺序结构2");
        System.out.println("顺序结构3");
        System.out.println("顺序结构4");
    }
}

二、选择结构

If分支

格式:if(条件){业务逻辑}

package com.struct;

import java.util.Scanner;

public class ifDemo03 {
    public static void main(String[] args) {
        // if多选择结构
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入你的分数:");
        int score = scan.nextInt();
        if (score==100){
            System.out.println("恭喜满分");
        }else if (score<100 && score>=90){
            System.out.println("优秀");
        }else if (score<90 && score>=80){
            System.out.println("良好");
        }else if (score<80 && score>=70){
            System.out.println("中等");
        }else if (score<70 && score>=60){
            System.out.println("及格");
        }else if (score<60 ){
            System.out.println("不及格");
        }else {
            System.out.println("成绩不合法");
        }

        scan.close();
    }
}

Switch_Case分支

可以通过反编译的信息去查看字节码文件,可以发现Case那个地方是一串式子因为字符的本子就是数字,每个Case后面都要加上break表示当条件满足遍跳出循环,否则会出现case穿透现象。

格式:switch(条件){case1: case2}不同条件的不同结果

package com.struct;

public class switchCase_2 {
    public static void main(String[] args) {
        //Jdk7以上支持字符串
        //字符的本质还是数字
        //反编译 java---class(字节码文件) ---反编译(idea)
        String name = "大哥";
        switch (name){
            case "大哥":
                System.out.println("我是你大哥");
                break;//可选
            case "二弟":
                System.out.println("我是你二弟");
                break;
            case "三弟":
                System.out.println("我是你三弟");
                break;

            default://可写可不写
                System.out.println("你这是哪国语言???");

        }
    }
}

三、循环结构

While循环

package com.struct;

public class do_WhileDemo01 {
    public static void main(String[] args) {
        /**
         * while(布尔表达式) {循环内容} 先判断在执行如果条件不满足就不会执行
         * while是最基本的循环,只要布尔表达式为true,循环就会一直执行下去
         * 大多数情况我们是会让循环停止下来的,这就需要一个让表达式失效的方式结束循环
         * 少部分情况需要循环体一直执行,比如服务器的请求响应监听
         * 循环条件如果一直为ture就会造成死循环,在正常的业务编程中会影响性能或者程序卡死
         *
         * 思考如何实现 计算1+2+3+4+5+.....+100=?
         */
        int i = 0;
        int sum =0;
        while (i<=100){
            sum = sum + i;
            i++;
        }
        System.out.println(sum);

    }
}

Do While循环

package com.struct;

public class do_WhileDemo02 {
    public static void main(String[] args) {
        /**
         * 首先要明白 While 和 do While的区别
         * While循环是先判断再执行也就是说如果条件不满足他压根就不会执行
         * 但是有时候我们需要即使不满足条件也要执行一次程序
         * 最大的区别就是 do While 至少会执行一次
         */

        int i = 0;
        int sum =0;
        do {
            sum = sum + i;
            i++;
        }while (i<=100);
        System.out.println(sum);

    }
}

While 和 do While的区别

package com.struct;

public class dowhile_And_while {
    public static void main(String[] args) {
        /**
         * 测试一下 While 和 do while的不同
         * 可以看出来do{}while(条件)至少执行了一次程序
         */
         int a = 0;
         // 测试While
        while (a<0) {
            System.out.println("a");//这一段没有执行
        }
        System.out.println("================");
        do {
            a++;
            System.out.println(a); //结果 1 可以看出来就算条件不满足也最少执行了一次
        }while (a<0);
    }
}

For循环

package com.struct;

public class ForDemo01 {
    public static void main(String[] args) {
        int a = 1 ; //初始化条件
        int sum = 0 ;

        while (a<=100){//条件判断
            System.out.println(a);//循环体
            a += 2 ;//迭代
        }
        System.out.println("While循环结束");

        //   初始化值   循环条件 迭代更新
        for (int i = 1;i<=100;i++){//循环条件
            System.out.println(i);//循环体
            sum = sum + i;

        }
        System.out.println("for循环结束!sum的和为"+sum);

        //for 循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构
        //快捷方式生成for循环100.for

    }
}

For循环小练习

计算0-100之间奇偶数的和
package com.struct;

public class ForDemo02 {
    public static void main(String[] args) {
        //练习1:计算0到100之间奇数和偶数的和
        int oddSum = 0;//奇数的和
        int evenSum = 0;//偶数的和
        for (int i = 0; i <= 100; i++) {
            if (i%2!=0){//奇数
                oddSum +=i;

            }else {//偶数
                evenSum +=i;
            }

        }
        System.out.println("奇数的和是:"+oddSum+"\\n"+"偶数的和是:"+evenSum);
    }
}
使用While或for循环输出1-1000之间能被5整数的数,且每行输出3个
package com.struct;

public class ForDemo03 {
    public static void main(String[] args) {
        //练习2:使用while或for 循环输出1-1000之间能被5整除的数,且每行输出3个

        //第一种for循环的实现
        for (int i = 0; i <= 1000; i++) {
            if (i%5==0){
                //被5整除的数
                System.out.print(i+"\\t");
            }
            if (i%(5*3)==0){//5、10、15 以15为整除来换行
                //System.out.print("\\n");//换行
                System.out.println();//换行
                //print()不换行 println()换行
            }
        }
        System.out.println("for循环结束开始while循环练习.....");


        // 第二种While循环的方式实现
        int a = 0;
        while (a<=1000){
            a++;
            if (a%5==0){
                System.out.print(a+"\\t");
            }
            if (a%(15)==0){
                System.out.println();

            }
        }
        System.out.println("while循环结束");
    }
}
for循环打印九九乘法表
package com.struct;

public class ForDemo04 {
    public static void main(String[] args) {
        // 练习三 for循环实现 九九乘法表 嵌套for循环的使用
        //1.首先输出一个定式子的1+"*"+i=(1*i) 能够得出一列 以1开头*到9的数值 ===>先写出内循环
        //2.把九九乘法表看成1*1 开头的列 2*2开头的列 3*3开头的列
        //3.去掉重复值 也可以理解为控制每一行的长度嘛 外循环执行一次内训都要重新执行一遍 所以当i<=j的时候就可以达到效果了
        for (int j = 1; j < 10; j++) {
                System.out.println();//执行完一次就换行
            for (int i = 1; i<=j; i++) {
                    System.out.print(i+"*"+j+"="+(j*i)+"\\t");

            }
        }

    }
}
打印金字塔

要学会吧困难的问题简单化把他看成是多个三角形的拼接 分成三部分来实现

package com.struct;

public class TestDemo {
    public static void main(String[] args) {
        // 小结练习 金字塔三角形打印
        // 如果理解不了可以进行debug断点测试
        for (int i = 1; i <= 5; i++) {
            for (int j = 5; j >=i; j--) {//左上角三角形
                System.out.print(" ");
            }
            for (int j =1; j <=i; j++) {//左下角三角形
                System.out.print("*");
            }
            for (int j =1; j <i; j++) {//又下脚小三角形
                System.out.print("*");
            }

            System.out.println();
        }
    }
}

结果:
     *
    ***
   *****
  *******
 *********

增强for循环

增强for循环其实就是一种方便数组遍历数据的一个循环

package com.struct;

public class ForDemo05_Add {
    public static void main(String[] args) {
        //增强for循环
        int[] numbers = {10,20,30,40,50};//定义一个数组

        for (int i =0;i<5;i++){
            System.out.println(numbers[i]);
        }
        System.out.println("普通for循环演示结束开始增强for循环的演示.....");
        //增强for循环遍历数组元素
        for (int x:numbers){
            System.out.println(x);
            // numbers里面每一项的值赋值给了int x
        }

        /*
        结果如下:
        10
        20
        30
        40
        50
        普通for循环演示结束开始增强for循环的演示.....
        10
        20
        30
        40
        50
         */
    }
}

四、跳出循环的方式

首先要明白跳出循环的方式宏观来看有三种

  1. 编辑业务代码让循环条件有ture变为false从而跳出循环
  2. break;在循环的主体,可以直接跳出循环
  3. continue;跳出本次循环,但是会对下一次循环继续进行判断,为ture时还是会继续执行

break的使用

package com.struct;

public class BreakDemo {
    public static void main(String[] args) {
        // break用于强行退出循环,不执行循环中剩余的语句
        int a = 0;
        int sum = 0;
        while (a<100){
            a++;
            System.out.println(a);
            if (a==11){
                System.out.println("a=11了兄弟循环要结束了喔!");
                break;
            }

        }
        System.out.println("123456你看见我了那我结束循环了");

    }
}

continue的使用

package com.struct;

public class ContinueDemo {
    public static void main(String[] args) {
        /*
        continue 语句用在循环语句体中,用于终止某次循环过程,也就是跳过循环体中没有执行的语句
         */
        int a =0;
        while (a<100){
            a++;
            if (a%10==0){//可以看出每次满足a%10==0的时候就会跳出本次循环不输出相应结果 但他还是会继续回到While执行下一次的循环
                System.out.println();
                continue;//if条件满足直接跳回开头while执行下一个while循环条件的判断
            }
            System.out.print(a+"\\t");
            /*结果
            1  2  3  4  5  6  7  8  9
            11 12 13 14 15 16 17 18 19
            21 22 23 24 25 26 27 28 29
            31 32 33 34 35 36 37 38 39
            41 42 43 44 45 46 47 48 49
            51 52 53 54 55 56 57 58 59
            61 62 63 64 65 66 67 68 69
            71 72 73 74 75 76 77 78 79
            81 82 83 84 85 86 87 88 89
            91 92 93 94 95 96 97 98 99
             */
        }
    }
}

以上是关于Java基础三种基本结构的主要内容,如果未能解决你的问题,请参考以下文章

Java 基础

Java基础11----if条件判断语句

记录程序日志的三种选择

JavaSE基础--Java 循环结构

整理Java基础知识--循环结构

python的程序结构有哪几种