从零开始学Java--Day05 流程控制语句、九九乘法表、三目运算符

        流程控制语句是Java学习中至关重要的一部分,它提供了控制程序步骤的基本手段。让我们开始愉快的学习吧!

上期链接:
从零开始学Java-Day04 彻底搞懂运算符_阿怂Jun的博客-CSDN博客今天我们开始第四天的学习,学习是一个艰苦的过程,让我们努力付出,享受收获吧!这边我放上前几期的链接,希望可以到帮助大家目录内容链接从零开始学Java-Day01Java简介、编写第一个Java程序从零开始学Java - Day01_阿怂Jun的博客-CSDN博客前言: 作为一个非科班毕业的大专生,很高兴能够进入Java这个大家庭。在这里,我会分享一些Java初学阶段所需要知道的一些内容,如果各位感觉有什么写的不对的地方,可以随意指出,我们共同学习,共同进步。.https://blog.csdn.net/weixin_57228654/article/details/121269372

目录

一、顺序结构

二、选择结构 

2.1、if语句 

2.2、if...else语句 

2.3、if...else if语句 

 2.4、if...else嵌套语句

 2.5、switch case 语句

三、循环结构 

3.1、while循环

3.2、do...while循环 

3.3、for循环

3.4、嵌套循环 

3.5、增强for循环

四、循环的跳转 

4.1、break 

4.2、continue

五、三目运算符


        在学习流程控制语句之前,我们需要先了解什么叫结构化程序设计。采用结构化程序设计方法,可使程序的逻辑结构清晰、层次分明、可读性好、可靠性强,从而提高了程序的开发效率,保证了程序质量。

程序的结构一般包含以下3种:
    1)顺序结构
    2)选择结构
    3)循环结构
这3种不同的结构有一个共同点,就是它们都只有一个入口,也只有一个入口。

一、顺序结构

        结构化程序中,最简单的结构就是顺序结构了。所谓的顺序结构,就是按照书写顺序执行语句的程序段。

 代码示例:

/**
 * 顺序结构代码演示
 */
public class OrderTest {
    public static void main(String[] args) {
        System.out.println("我是熊大");
        System.out.println("我是熊二");
        System.out.println("我是张三");
        System.out.println("我是王五");
        System.out.println("我是赵六");
    }
}

运行结果如下:

从这里我们可以看出,打印语句的顺序是从上至下,按照我们书写的语句进行顺序打印的。 

二、选择结构 

        选择结构也称为分支结构,在许多实际问题的程序设计中,会根据不同情况选择不同的语句执行。在这种情况下,必须根据某个变量或表达式的值来进行判断,来决定执行哪些语句或者是跳过哪些语句不执行。

2.1、if语句 

 我们先了解一下最基础的if语句:

        格式:

                  if(布尔表达式){
                        //如果表达式结果为true,执行{}内的语句
                  }

代码示例:

/**
 * 判断结构演示
 */
public class TrueOrFalseTest {
    public static void main(String[] args) {
        int num = 20;
        if (num < 30) {
            System.out.println("这是if语句");
        }
    }
}

运行结果:

        这里我们需要知道,如果布尔表达式的值为true时,就好执行if语句中的代码块中的代码,否则会直接执行if语句后的代码 。

2.2、if...else语句 

  

格式:

        if(布尔表达式){
            //如果表达式结果为true,执行此处语句
        }else{
            //如果表达式结果为false,执行此处语句
        }

代码示例:

/**
 * 判断结构演示
 */
public class TrueOrFalseTest {
    public static void main(String[] args) {
        int num = 20;
        if (num > 30) {
            System.out.println("这是if语句");
        } else {
            System.out.println("这是else语句");
        }
    }
}

运行结果:

        if语句后面跟着else语句时,当布尔表达式的值为true是,执行if语句的代码块,当布尔表达式的值为false时,执行else语句的代码块。 

2.3、if...else if语句 

格式:

         if(布尔表达式){
                 //如果表达式结果为true,执行此处语句
        }else if(布尔表达式){
               //如果表达式结果为true,执行此处语句
        }else{
               //如果前面布尔表达式的值都为false,执行此处语句
        }

代码示例:

/**
 * 判断结构演示
 */
public class TrueOrFalseTest {
    public static void main(String[] args) {
        int num = 20;
        if (num > 30) {
            System.out.println("这是if语句");
        } else if (num < 30) {
            System.out.println("这是else if语句");
        } else {
            System.out.println("这是else语句");
        }
    }
}

运行结果:

 这里需要注意:
    1)if语句最多只能有1个else语句,且else语句要在所以的else if  语句之后。
    2)if语句可以有多个else if 语句
    3)一旦其中某个else if 语句检查为true,其它的else if 及 else 语句都将跳过执行。

 2.4、if...else嵌套语句

使用嵌套的if...else是合法的,也就是说我们可以在一个if...else中嵌套另一个if...else。

/**
 * 判断结构演示
 */
public class TrueOrFalseTest {
    public static void main(String[] args) {
        int num = 20;
        if (num > 30) {
            System.out.println("这是if语句");
        } else {
            System.out.println("这是else语句");
            if (num < 30) {
                System.out.println("这是嵌套的if语句");
            } else {
                System.out.println("这是嵌套的else语句");
            }
        }
    }
}

 运行结果如下:

 2.5、switch case 语句

        对于多分支处理还有一种情况,它对一个整型表达式的值进行计算,针对该表达式的不同取值决定执行多路分支程序段中的一支这就是switch结构。switch结构也称为“多路选择结构”。它常与break语句联合使用,在switch语句中使用break语句可以使程序立即退出该结构。

格式:

        switch(表达式){

                case 选择值1:

                        语句主体1;

                        break;        

                case 选择值2:

                        语句主体2;

                        break;    

                ......

                default:

                        语句主体;    

        }

代码示例:

/**
 * 测试switch语句
 */
public class SwitchDemo {
    public static void main(String[] args) {
        int x = 20;
        int y = 5;
        char oper = '/';

        switch (oper) {
            case '+':
                System.out.println("x + y = " + (x + y));
                break;
            case '-':
                System.out.println("x - y = " + (x - y));
                break;
            case '*':
                System.out.println("x * y = " + (x * y));
                break;
            case '/':
                System.out.println("x / y = " + (x / y));
                break;
            case '%':
                System.out.println("x % y = " + (x % y));
                break;
            default:
                System.out.println("无意义表达式");
        }
    }
}

运行结果:

 注意:      
    1)switch语句中的变量类型可以是:byte、short、int 或者 char。从JDK1.7开始,switch也支持String类型。
    2)switch可以拥有多个case语句。
    3)case语句的值的数据类型必须与变量的数据类型相同。
    4)当case语句开始执行时,直到break语句出现才会跳出switch语句。
    5)当遇到break语句时,switch语句终止。case语句不必须要包含break语句。如果没有break语句,程序会继续执行下一条case语句,直到出现break语句。
    6)switch语句可以包含一个default分支,一般是switch语句的最后一个分支。default分支不需要break语句。

三、循环结构 

        环结构的特点是在给定的条件成立时,反复的执行某一段程序。我们一般将给定条件称作循环条件,被反复循环的程序段为循环体。 循环体可以是复合语句、单个语句或空语句。循环结构包括while循环、for循环,在循环体中也可以包含循环语句,实现循环嵌套。

3.1、while循环

         while循环语句的执行过程是先判断循环条件,如果循环条件的值为true,则执行循环体重的语句;否则退出循环

格式:

        while(循环条件){
                循环体
        }

代码示例:

/**
 * while循环演示
 */
public class WhileDemo {
    public static void main(String[] args) {
        int i = 1;
        int num = 0;
        while (i <= 10) {
            num += i;
            i++;
        }
        System.out.println("1+2+...+10 = " + num);
    }
}

运行结果:

 注意:

        1)第一次进入循环时,必须对循环控制变量赋起始值。
        2)第一遍循环结束,会重新对循环控制变量赋值(增加或减少),而while循环不会自动更改循环控制变量,所以在while循环时,需要我们自己对循环控制变量进行控制。
        3)当while的循环条件固定为true时,会进行无限循环,也就是我们常说的死循环。

3.2、do...while循环 

        有的时候,即使不满足循环条件,我们也需要执行一次循环体内的程序段,所以do...while帮助我们实现了这个功能。和while语句相比,do...while的循环体在前面,循环条件在后面。会先执行一遍循环体内的代码,然后判断循环条件是否满足循环,如果循环添加为true,则进行循环,反之退出循环。

格式:

        do{

                //循环体

        }while(循环条件);

 

代码示例:

/**
 * do...while演示
 */
public class DoWhileDemo {
    public static void main(String[] args) {
        int i = 1;
        int num = 0;
        do {
            num += i;
            i++;
        } while (i <= 10);
        System.out.println("1+2+...+10=" + num);

        i = 1;
        int num2 = 0;
        do {
            num2 += i;
            i++;
        } while (i >= 10);
        System.out.println("num2 = " + num2);
    }
}

运行结果:

         从这里我们可以看出,当循环条件为true时,正常进入循环。可以当循环条件为false时,循环体内的代码还是运行了一遍。

3.3、for循环

        除了while 或者 do...while以外,Java还提供了另外一种语句“for循环”,for 循环执行的次数是在执行前就确定的。

格式:
    for(初始变量;布尔表达式;初始变量的增减){
        循环体
    }

代码示例:

/**
 * for循环演示
 */
public class ForDemo {
    public static void main(String[] args) {
        /*
        * 计算1+2+...+100的和
        * */
        int count = 0;
        for (int i = 1; i <= 100; i++) {
            count += i;
        }
        System.out.println("1+2+...+100 = " + count);
    }
}

运行结果:

  

 注意:如果使用for循环时,循环条件为空,则会开始死循环,相当于while循环的循环条件指定为true。例子:

        for(;;){

        }

3.4、嵌套循环 

        嵌套循环,就是在循环语句中又出现了循环语句。可以是嵌套for循环、嵌套while循环、或者混合嵌套循环。这里用九九乘法表举例:

代码示例:

/**
 * 嵌套循环演示
 */
public class ForForDemo {
    public static void main(String[] args) {
        /*
        * 打印九九乘法表
        * */
        char t = '\t';  //间隔符
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j + "*" + i + "=" + (i*j) + t);
            }
            System.out.println();
        }
    }
}

运行结果:

这里我们分析一波程序的运行流程:

1)外循环:从int i = 1开始,每循环一次i++,循环条件为i <= 9,所以总共会循环9圈。
2)内循环:从int j = 1开始,每次循环j++,循环条件为j <= i,循环圈数根据i的值发生变化。
3)当第一次循环时,外循环i的值为1,因此内循环执行一圈后,内循环结束。
4)外循环开始第二次的循环,此时i的值为2,因此内循环需要执行两遍,内循环结束。
5)以此类推,当外循环执行第9次时,内循环需要执行9次才能结束内循环。同时i++后,i <=9 为false,结束外循环。

3.5、增强for循环

        在JDK5引入了一种主要用于数组的增强型for循环。
格式:
    for(接收数组元素的变量:需要被遍历的数组){
        循环体
    }

代码示例:

/**
 * 增强for循环演示
 */
public class ForeachDemo {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7};
        for (int i : arr) {
            System.out.println("i = " + i);
        }
    }
}

运行结果:

 

四、循环的跳转 

4.1、break 

        在while、for、do...while或switch等语句中使用break可以使程序立即退出当前结构,执行该结构下面的语句。break通常用来在适当的时候退出某个循环,或终止某个case并跳出switch结构。 

 代码示例:

/**
 * break的使用
 */
public class BreakDemo {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            if (i == 5) {
                break;
            }
            System.out.println(i);
        }
        System.out.println("循环提前结束");
    }
}

运行结果:

 

         这里我们可以看出,在循环中,每循环一次,变量i自增1。当变量 i == 5时,我们执行了 break;语句。程序直接结束了循环,执行循环外的下一条语句了。

4.2、continue

        continue同样适用于所以循环结构。它的作用是直接结束本次循环,跳回到循环的起点,进行下次循环。

代码演示:

/**
 * continue演示
 */
public class ContinueDemo {
    public static void main(String[] args) {
        int i = 0;
        while (i <= 10) {
            if (i % 3 == 0) {
                i++;    //此处进行自增,否则i%3的值会一直为0,从而变成死循环
                continue;
            }
            System.out.println(i);
            i++;
        }
    }
}

运行结果:

注意:break和continue的区别:break是不管情况如何,都会直接跳出循环。continue是不再执行当前循环的后续语句,直接回到循环的起始处进行下次循环。 

五、三目运算符

        这里我们补充一个特殊的运算符:三目运算符,又称为三元运算符。它的运行逻辑类似于if...else语句。例如条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。
         "?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。
        可以理解为条件 ? 结果1 : 结果2 里面的?号是格式要求。也可以理解为条件是否成立,条件成立为结果1,否则为结果2。

代码示例:

/**
 * 三目运算符演示
 */
public class TernaryOperatorDemo {
    public static void main(String[] args) {
        int x = 10;
        int y = 20;
        System.out.println((x + y)==10?"这是正确的表达式":"这是错误的表达式");

        //也可以用来赋值
        int z = (x + y) == 10 ? 30 : 40;
        System.out.println("z = " + z);
    }
}

运行结果:

 

         以上就是今天的全部内容了,大家加油!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值