这里先简单介绍几种流程控制语句 包括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(>) {
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{  不满足条件时执行  }

 public class  Test{

     public static void main(String[] args) {
/**
* if-else 语句 用于对满足条件和不满足条件两种情况都做出操作
* if语句块或者else语句块必然有一个会被执行
* 语法: if(条件){
* 满足条件时需要执行的语句
* }else{
* 不满足if条件时执行
* }
*/
if(->) {
System.out.println("1大于0"); //输出-5大于0
}else {
System.out.println("-5<小于0"); //输出-5 小于0
}
}
}

       3.2.3 if-elseif-else语句

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

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

            比较简单,直接看例子

 public class  Test{

     public static void main(String[] args) {
int x = ;
if(x<) {
System.out.println("不合格");
}else if(x<=) {
System.out.println("一般"); //如果可以到这里,就说明x一定是>=60的
}else if(x<=) {
System.out.println("良好");//如果导致合理 说明x一定是>70的
}else if(x<=) {
System.out.println("优秀"); //。。
}else {
System.out.println("不正确的成绩"); //如果所有的条件都不满足
}
}
}

       3.2.4 switch语句

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

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

 public class  Test{

     public static void main(String[] args) {
int x = ;
/**
* switch语句 作用:多条件分支
* 弊端: 只能判断相等的值
* 可以有无限多个相等的值
*/
switch(x) {
case : System.out.println("");break;
case : System.out.println("");break;
case : System.out.println("");break;
default: System.out.println("none"); //输出nonoe
}
}
}

        这里有几点注意:

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

          2.条件可以有无限多个

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

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

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

 public class  Test{

     public static void main(String[] args) {
int x = ;
/**
* 当不屑break时的结果:
*/
switch(x) {
case : System.out.println("");
case : System.out.println("");
case : System.out.println("");
default: System.out.println("none"); //输出 1 2 3 nonoe
}
}
}

4.循环结构

   4.1 循环结构的适用场景

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

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

   4.2 JAVA 中的循环语句

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

       4.2.1 for循环

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

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

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

 public class  Test{

     public static void main(String[] args) {
int sum = ;
//循环变量i;循环条件i<=100;变量自增,每次加一
for(int i=;i<=;i++) {
sum += i; //循环重复进行的操作
}
System.out.println(sum); //5050
}
}

       4.2.2 while循环

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

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

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

 public class  Test{

     public static void main(String[] args) {
int sum = 0;
int i = 1;
while(i<=100) {
sum += i;
i++;
}
System.out.println(sum); //5050
}
}

       4.2.3 循环变种

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

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

    

 public class  Test{

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

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

 public class  Test{

     public static void main(String[] args) {
/**
* do-while循环,无论条件如何,至少会执行一次
*/
do {
System.out.println("执行一次循环");
}while(1>5);
}
}

   4.3 break和continue

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

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

      先来看break:

 public class  Test{

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

      再来看continue:

 public class  Test{

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

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

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

5. 补充知识

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

public class  Test{

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

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

  1. java自学-流程控制语句

    一件事情从开始到结束,需要先做什么,再做什么,最后再怎么做,这段过程就是一个流程.程序逻辑处理也是一个流程,java中有专门的流程控制语句,主要分为这几种:顺序,判断,选择,循环. 1.顺序流程  顺 ...

  2. Java学习笔记八:Java的流程控制语句之循环语句

    Java的流程控制语句之循环语句 一:Java循环语句之while: 生活中,有些时候为了完成任务,需要重复的进行某些动作.如参加 10000 米长跑,需要绕 400 米的赛道反复的跑 25 圈.在 ...

  3. Java学习笔记六:Java的流程控制语句之if语句

    Java的流程控制语句之if语句 一:Java条件语句之if: 我们经常需要先做判断,然后才决定是否要做某件事情.例如,如果考试成绩大于 90 分,则奖励一朵小红花 .对于这种“需要先判断条件,条件满 ...

  4. 2017.10.14 Java的流程控制语句switch&&随机点名器

    今日内容介绍 1.流程控制语句switch 2.数组 3.随机点名器案例 ###01switch语句解构     * A:switch语句解构       * a:switch只能针对某个表达式的值作 ...

  5. JAVA基础--流程控制语句02

    JAVA流程控制语句 一.程序流程 定义:只代码执行的先后顺序 种类 顺序流程:程序默认流程,按照书写顺序执行 选择流程:选择语句 判断语句 重复流程: 循环控制语句 二.选择流程控制语句 判断语句 ...

  6. Java基础 - 流程控制语句

    package com.demo4; /* * 流程控制语句 * 流程控制语句分类: * 顺序结构 * 代码从上往下按照顺序执行 * * 选择结构 * if * if (关系表达式1) { * 语句体 ...

  7. Java SE ---流程控制语句

     java的控制流程有三种: 一,顺序流程             自上而下,按照代码的先后顺序执行 二,分支流程             1,if/else语句             2,swit ...

  8. Java 程序流程控制语句

    顺序语句 语句:使用分号分隔的代码称作为一个语句 注意:没有写任何代码只是一个分号的时候,也是一条语句,称作空语句 顺序语句就是按照从上往下的顺序执行的语句 Scanner scanner = new ...

  9. Java之流程控制语句

    一.Java条件语句(if...else)    ifelse语法:                                              多重if语法:              ...

  10. Java学习笔记七:Java的流程控制语句之switch

    Java条件语句之 switch 当需要对选项进行等值判断时,使用 switch 语句更加简洁明了.例如:根据考试分数,给予前四名不同的奖品.第一名,奖励笔记本一台:第二名,奖励 IPAD 2 一个: ...

随机推荐

  1. php效率优化

    php效率优化 最近在公司一边自学一边写PHP程序,由于公司对程序的运行效率要求很高,而自己又是个新手,一开始就注意程序的效率很重要,这里就结合网上的一些资料,总结下php程序效率优化的一些策略:1. ...

  2. MySQL多项模糊查询

    最近有个需求,就是要根据搜索框里面的关键字,找到符合条件的数据. 如果是单个条件的话,其实就是一个普通的select语句. 但是需求是这个关键字,要在id,desc,step等多个字段模糊查找. 然后 ...

  3. C#实现并口输出输入高低电位

    PC并行口各阵脚定义: 1.选通,PC->Printer 2-9 数据(D0-D7) 10.应答(ACK),Printer->PC 11.忙(BUSY),Printer->PC 12 ...

  4. 思科ASA 基础学习

    ASA int e0/0 ip add 192.168.1.1 24nameif insidesecruity-leve 100 int e0/0/0ip add 192.168.2.1 24name ...

  5. 3DMAX导出FBX的烘焙动画选项

    勾选了 [烘焙动画]选项时,表示由骨骼动画塌陷为逐帧动画,这样的结果就是:导出的动画确保是正确的,但体积增大,这是骨骼动画与逐帧去画的区别所在. 如果不勾选此选项,则导出的是骨骼动画,可能出现一些问题 ...

  6. 火狐浏览器的RestClient,接口测试,Post提交数据

    昨天需要测试接口是不是调通,api中本身已经集成了测试,但加了OAuth,api有没有添加头文件,Headers的地方,所以想用RESTClient的Post提交重新测试下,但是,调了好几个小时都没有 ...

  7. Linux实战教学笔记42:squid代理与缓存实践(一)

    第1章 Squid介绍 1.1 缓存服务器介绍 缓存服务器(英文意思cache server),即用来存储(介质为内存及硬盘)用户访问的网页,图片,文件等等信息的专用服务器.这种服务器不仅可以使用户可 ...

  8. go_常量与枚举

    package main import ( "fmt" "math" ) //常量的数值可以作为各种类型使用 func consts(){ const file ...

  9. App审核被拒(后台定位被拒,ipv6被拒,广告标示被拒的解决方案)

    ipv6被拒问题描述: 解决方案支持ipv6 1)搭建ipv6 环境,搭建好的ipv6 ,环境会有一个共享wifi, 具体如何搭建ipv6测试环境参考本地如何搭建IPv6环境测试你的APP2)app连 ...

  10. 安装了Anaconda之后,Maya运行报错,Python 找不到 Maya 的 Python 模块

    以前Maya用的好好地,结果安装了Anaconda之后,maya启动以后,日志就会报错(如下),只能自主建模,不能打开以前创建的模型,也不能导入fbx,错误提示就是Maya找不到Python模块,在网 ...