java-04流程控制语句

这里先简单介绍几种流程控制语句 包括if/if-else、switch语句

1.三大流程控制结构

      所谓流程控制,就是说要控制程序的执行方式,根据不同的情况执行不同的代码,从而得到不同情况下的不同结果。

      首先,我们先了解一下常见的三大流程结构:顺序,分支和循环

    1.1 顺序结构:

        顺序结构是这几种结构中最简单的一种结构,其含义就是按顺序执行。就像我们在在做一件事的时候,要有一定的步骤,我们就要按照这个步骤一步一步进行。比如说坐飞机,我们要先买票,然后进行安检,然后换登机牌登机...

        该结构的程序执行顺序是由上自下,依次执行的。

    1.2 分支结构:

        与顺序结构相比稍有一些复杂,分支结构是指在当前节点可能发生很多种情况(比较典型的是2种情况),那么这时我们就要根据不通的情况执行不同的办法,这就是分支结构。举一个生活中的例子就是上高速时根据车的大小不同、

        重量或者座位数不同以及行驶距离不同,则会有不同价格的高速费,具体的计费方式就是分支结构完成的,这里不详细描述

        该结构的程序执行受条件控制,根据不同的条件执行不同的分支(这也是程序设计中比较重要的一个环节)

    1.3 循环结构

        该结构比较抽象,我们可以理解为为了达到某种目的而不断去做同一件事,直到达到目标之后才停止。相信大家都见过螺丝吧,如果想拧紧螺丝的话我们就必须不断地扭动他,直到锁紧为止。这就是循环的一个小例子(想不出合适的例子了0.0)

        该结构在程序中被称作循环语句,也是程序设计中比较重要的一个环节,相信大家一定都听说过 “死循环吧” 这里的 “死循环” 指的就是程序中的循环永远也达不到目的,一直运行下去,当然,我们应该避免这种情况。

2.顺序结构

    顺序结构比较好理解,这里就不再过多的描述,我们主要来说一下分支和循环

3.分支结构

   3.1 分支结构适用的场景

        根据分支的定义,想必大家已经知道了分支结构会在哪里被用到了吧!就是在程序有多种可能性的时候,我们必须对每一种可能性进行不同的处理的时候。

   3.2 JAVA中的分支语句

        java中提供了两类分支语句 一类是if语句,另一类时switch语句,接下来,我们来一一进行讲解

       3.2.1 if语句

          if语句时java中最简单的分支语句,用于满足某个单一条件时执行    语法: if(条件){ 被执行的代码 }   如果条件不满足(if的值为假)则直接跳过该语句块,继续向下执行

          请注意:java中的if条件必须是一个boolean值而不能是其他任何值,这一点与c语言是不同的

public class  Test{

    public static void main(String[] args) {
        /**
         * if 语句 用于满足某一条件时执行
         * 语法: if(条件){
         *         满足条件时需要执行的语句
         * }
         */
        if(1>0) {
            System.out.println("1大于0"); //输出1大于0
        }
    }
}

       3.2.2 if-esle语句

          if-else语句比if语句强大一点,由于if语句只是在满足条件时执行,若不满足条件则直接跳过。但当我们需要对不满足条件的时候进行处理的时候,if-else语句就派上用场了

          if-else语句当if的条件为真(即满足条件时)执行if语句块,当if的条件为假时(即不满足if条件时)执行else语句块,也就是说对于每一个if条件,要么执行if语句块,要么执行else语句块,二者必然有一个会被执行。

          语法:  if(条件){ 满足if条件执行 }else{  不满足条件时执行  }

 1 public class  Test{
 2
 3     public static void main(String[] args) {
 4         /**
 5          * if-else 语句  用于对满足条件和不满足条件两种情况都做出操作
 6          * if语句块或者else语句块必然有一个会被执行
 7          * 语法: if(条件){
 8          *         满足条件时需要执行的语句
 9          * }else{
10          *         不满足if条件时执行
11          * }
12          */
13         if(-5>0) {
14             System.out.println("1大于0"); //输出-5大于0
15         }else {
16             System.out.println("-5<小于0"); //输出-5 小于0
17         }
18     }
19 }

       3.2.3 if-elseif-else语句

            该语句用于多条件分支时使用,即存在多个条件,程序会一次检索每一个条件,如果条件都不满足,则执行最后的else语句(使用时注意条件的包含)

            这里需要注意一点就是程序检索条件的顺序就是我们写的顺序,所以一定要考虑条件的顺序以及条件包含

            比较简单,直接看例子

 1 public class  Test{
 2
 3     public static void main(String[] args) {
 4         int x = 101;
 5         if(x<60) {
 6             System.out.println("不合格");
 7         }else if(x<=70) {
 8             System.out.println("一般"); //如果可以到这里,就说明x一定是>=60的
 9         }else if(x<=85) {
10             System.out.println("良好");//如果导致合理 说明x一定是>70的
11         }else if(x<=100) {
12             System.out.println("优秀"); //。。
13         }else {
14             System.out.println("不正确的成绩"); //如果所有的条件都不满足
15         }
16     }
17 }

       3.2.4 switch语句

          switch语句就是对if-else if-else语句的简化,它允许有多个条件,对每个条件进行不同的操作,并且也提供一个所有条件都不满足的操作,不过该语句有一个缺点就是他只能比较相等的值。

          看下面的例子,你就理解了!

 1 public class  Test{
 2
 3     public static void main(String[] args) {
 4         int x = 5;
 5         /**
 6          * switch语句 作用:多条件分支
 7          * 弊端: 只能判断相等的值
 8          * 可以有无限多个相等的值
 9          */
10         switch(x) {
11             case 1 : System.out.println("1");break;
12             case 2 : System.out.println("2");break;
13             case 3 : System.out.println("3");break;
14             default: System.out.println("none"); //输出nonoe
15         }
16     }
17 }

        这里有几点注意:

          1.switch括号内只支持基本类型(目前已经开始支持String类型)

          2.条件可以有无限多个

          3.case 后面的值就是要匹配的值 冒号后面的就是当匹配到该值时要执行的代码(可以是一句,可以是代码块,也可以是一个方法)

          4.switch内部时顺序执行的,也就是说,后面的break一定要写(除非你明确知道你不写是为了什么)

          5.当break不写时,swtich匹配到一个值以后,后面每一个匹配都不会再看条件,而是顺序执行其中的代码,直到遇到break或者执行完毕。

 1 public class  Test{
 2
 3     public static void main(String[] args) {
 4         int x = 1;
 5         /**
 6          * 当不屑break时的结果:
 7          */
 8         switch(x) {
 9             case 1 : System.out.println("1");
10             case 2 : System.out.println("2");
11             case 3 : System.out.println("3");
12             default: System.out.println("none"); //输出 1 2 3 nonoe
13         }
14     }
15 }

4.循环结构

   4.1 循环结构的适用场景

        所谓循环,就是反复的去做同一件事,直到达到目的。比如,我们可以使用循环去遍历打印一个99乘法表,利用循环输出1-100之间的数,等等等等

        循环的使用场合很多,书写方式也有很多,这个只能靠多理解,多练习。

   4.2 JAVA 中的循环语句

        java 提供了两种类型的循环,一个是 for循环,一个是while循环 (还有两种变种循环,请往下看!)

       4.2.1 for循环

          for循环时java中最常用的循环,是用到的最多的循环。当我们想要重复进行一个操作的时候,就要考虑是否要使用循环

          语法: for(变量声明;循环终止条件;变量自增){   循环体    }

          先看一个例子: 利用循环计算1-100的和:

 1 public class  Test{
 2
 3     public static void main(String[] args) {
 4         int sum = 0;
 5         //循环变量i;循环条件i<=100;变量自增,每次加一
 6         for(int i=1;i<=100;i++) {
 7             sum += i; //循环重复进行的操作
 8         }
 9         System.out.println(sum); //5050
10     }
11 }

       4.2.2 while循环

          while循环一般用于简单的循环操作,所有的while循环都可以被改写成for循环,while循环语法比较简单

          语法:  while(循环条件) {    循环体    }

          使用while循环计算1-100的和:

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

       4.2.3 循环变种

           第一个是for的变种叫做增强for循环或者foreach循环 一般是用来遍历数组或者遍历集合类,这种循环只能遍历其值,并不能修改其值,当我们不需要修改值的时候推荐使用这种循环

           语法 for(变量类型 变量名:被遍历对象){  循环体  }

    

 1 public class  Test{
 2
 3     public static void main(String[] args) {
 4         int[] arr = new int[] {1,2,3,4,5,6,7,8,9,10};
 5         /**
 6          * 增for循环,只能遍历,不能修改
 7          */
 8         for(int i:arr) {
 9             System.out.println(i);
10         }
11     }
12 }

            第二种是while循环的变种  叫做do-while循环,这种循环是先运行循环体,再对条件进行判断,也就是说,无论条件是否成立,该循环至少会运行一次

 1 public class  Test{
 2
 3     public static void main(String[] args) {
 4         /**
 5          * do-while循环,无论条件如何,至少会执行一次
 6          */
 7         do {
 8             System.out.println("执行一次循环");
 9         }while(1>5);
10     }
11 }

   4.3 break和continue

      这两个关键字是循环中比较常用的关键字,其中break是直接结束本循环,继续执行下面的代码。continue是结束当前循环,进行下一轮循环

      我们通过一个例子来看看二者的区别

      先来看break:

 1 public class  Test{
 2
 3     public static void main(String[] args) {
 4         /**
 5          * 测试break 直接结束循环
 6          */
 7         for(int i=0;i<100;i++) {
 8             if(i==10) {
 9                 break; //当i等于10的时候结束循环
10             }
11             System.out.print(i+" ");
12         }
13     }
14     /**
15      * 程序输出:0 1 2 3 4 5 6 7 8 9
16      */
17 }

      再来看continue:

 1 public class  Test{
 2
 3     public static void main(String[] args) {
 4         /**
 5          * 测试break 直接结束循环
 6          */
 7         for(int i=0;i<10;i++) {
 8             if(i==5) {
 9                 continue; //当i等于10的时候结束循环
10             }
11             System.out.print(i+" ");
12         }
13     }
14     /**
15      * 程序输出:0 1 2 3 4 5  7 8 9 10
16      */
17 }

      两者的区别就在于一个是直接结束整个循环,一个只结束当前一次循环

      同样的还有个continue 标签和break 标签操作,但是不建议使用  点击这里进行了解

5. 补充知识

    写循环的时候一定要注意是否对循环变量或者循环条件进行操作,否则可能造成死循环。下面的代码就是一个死循环的例子

public class  Test{

    public static void main(String[] args) {
        int i = 1;
        /**
         * 由于没有对变量i进行任何操作,导致循环条件一直成立,造成死循环
         */
        while(i>0) {
            System.out.println(i);
        }
    }

}

原文地址:https://www.cnblogs.com/xiaobai1202/p/10797573.html

时间: 2024-10-09 10:43:16

java-04流程控制语句的相关文章

Java基础-流程控制语句与运算符

运算符 算术运算符 ++ -- 在前时先运算后取值:在后时先取值后运算 关系运算符 == !=也可以是引用类型 位运算符 逻辑运算符 赋值运算符 条件运算符 (?:) 布尔表达式 ? 表达式1 : 表达式2 布尔表达式的值为true则返回表达式1的值 否则返回表达式2的值 instanceof 运算符 该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型). ( Object reference variable ) instanceof (class/interface t

java se 流程控制语句 if与switch语句

流程控制语句if的用法为:第一种形式:if(布尔表达式){//待执行的代码}第二种形式:if(布尔表达式){//待执行的代码}else{//待执行的代码}第三种形式:if(布尔表达式){//待执行的代码}else if(布尔表达式){//待执行的代码}else if(布尔表达式){//待执行的代码}else{//待执行的代码} public class IfTest{ public static void main(String[] args) { int a = 3; int b = 2; i

Java循环流程控制语句

7 循环流程控制语句 7.1 for循环的格式及基本使用 7.1.1 for循环语句格式: for(初始化语句;判断条件语句;控制条件语句){ 循环体语句; } 7.1.2 循环的执行流程图: 案例: package com.lyc.test; public class ForDemo01 { public static void main(String[] args) { //需求:在控制台输出10次"我好喜欢你" //原始写法: System.out.println("我

Java Script 流程控制语句(if判断、switch选择和循环)

在JS中流程控制语句是相互嵌套配合使用的,以下个人见解整理仅供参考: if判断:听名字基本大概就能知道其作用,主要用于判断:下面代码示例可以更清晰的感觉到: if(判断条件){ 代码块1: } else { 代码块2: } 这是if判断的第一种写法,表示,如果判断条件为true,就执行代码块1,否则执行代码块2,后面的else就表示否则:else可以写也可以不写,不写就代表,如果判断条件为真就执行代码块1,否者什么都不用做: if(判断条件1){ 代码块1: } else  if(判断条件2)

JAVA基础-流程控制语句注意事项

1:switch语句(掌握) (1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n+1; break; } 格式解释说明: switch:说明这是switch语句. 表达式:可以是byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 case:后面的值就是要和表达式进行比较的值 break:表示程序到这里中断,跳出switch语句 default:如

Java之流程控制语句

一.Java条件语句(if...else)    ifelse语法:                                              多重if语法:                             嵌套if语法: if(条件1){                                             if(条件1){                            if(条件1){ 代码块1:                       

Java学习笔记—第六章 流程控制语句

第六章  熟悉Java的流程控制语句 Java的程序流程控制分为顺序结构.选择结构.循环结构和跳转语句. 顺序结构:按照程序代码自上而下执行,直到程序结束,中间没有任何判断和跳转. 选择结构(分支结构):判断给定的条件,根据判断结果控制程序的流程.包括if语句和switch语句. 2.1 if语句:通过判断给定表达式的值来决定程序的流程.常见if语句的形式有三种: (1)if(expression){ statement: } (2)if(expression){ statement; }els

JAVA学习(四):Java流程控制语句(顺序结构、if条件语句、switch条件语句、循环语句与跳转语句)

Java流程控制语句 本博文将对JAVA中组成各种结构的控制语句进行重点介绍,主要内容是区别于C/C++中的流程控制语句的重点解析. 1.顺序语句 顺序结构中的语句可分为:表达式语句.空语句和复合语句三大类. 注: (1).空语句主要用来作为空循环体,其语法格式如下: : //其实就是一个分号 执行一个空语句,就是将控制转到该语句的结束点.这样,如果空语句是可以到达的,则空语句的结束点也是可以到达的. (2).复合语句又称为语句块,若语句块是空的,则控制转到语句块的结束点. 2.if条件语句 J

java入门第一季_1.5_流程控制语句

既然选择了远方,便只顾风雨兼程. 流程控制语句 if switch while do-while for break continue if package com.zhb.demo; public class Test1 { public static void main(String[] args) { int num = 2; if(num % 2 == 0){ System.out.println("num 是 偶数"); }else{ System.out.println(&

Java基础学习第三天——运算符与流程控制语句

文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 2016.02.22 lutianfei none 运算符 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 三目运算符 算术运算符 * 注:整数相除只能得到整数,若想得到小数,只需将任意一个数据变为浮点数. * eg:System.out.println(x*1.0/y); ++,– : 放在操作数前面,先自增或者自减,然后再参与运算. 放在操作数后面,先参与运算,再自增或者自减. 练习题1: int a=10,b=1