流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块 。控制语句分为三类:顺序,选择和循环。

“顺序结构”代表”先执行a,再执行b”的逻辑。比如,先找个女朋友,再给女朋友打电话;先订婚,再结婚;

“选择结构”代表”如果…,则…”的逻辑。比如,如果女朋友来点,则迅速接电话;如果看到红灯,则停车;

“循环结构”代表”如果…,则再继续…”的逻辑。比如,如果没打通女朋友电话,则再继续打一次;如果没找到喜欢的人,则再继续找。

  顺序结构:

    

   顺序结构是常见的程序执行结构,表示按照顺序一步一步执行程序。如:我们编写的简单的程序总是程序入口开始,顺序执行每一条语句直到执行完最后一条语句结束。

选择结构: 生活中经常需要进行条件判断,根据判断结果决定是否做一件事情,这就需要选择结构。

选择结构用于判断给定的条件,然后根据判断的结果来控制程序的流程。

   主要的选择结构有:

    1)if单选择结构

    2)if else 双选择结构

    3)if else-if else 多选择结构

    4)switch case语句结构 

if单选择结构

语法结构:

 if(布尔表达式){

              语句块

          }

if语句对布尔表达式进行一次判定,若判定为真,则执行{}中的语句块,否则跳过该语句块。

if单选择的流程图如下:

   

         /**
* 测式if单选择
*/
int a = 13;//定义int类型的变量
if(a>14){//判断条件
System.out.println("a的值大于13");//执行语句
}

    if-else双选择结构

    语法结构:

     if(布尔表达式){

             语句块1

      }else{

        语句块2

        }

    当布尔表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。

    流程图:

      

  

    /**
* 测试if-else选择结构
*/
int b = 3;
if (b > 3) {
System.out.println("b大于3");
}else{
System.out.println("b不大于3");
} 

   if else-if  else多选择结构

语法结构:

  if(布尔表达式1){

              语句块1;  

        }else if(布尔表达式2){

              语句块2;

        }else if(布尔表达式n){

             语句块n;

       }else{

             语句块n+1;

       }

当布尔表达式1为真时,执行语句块1;否则,判断布尔表达式2,当布尔表达式2位真时,执行语句块2;否则,继续判断布尔表达式3…..;如果1~n个布尔表达式均判定为假时,则执行语句块n+1,也就是else部分。

  流程图:

    

    /**
* 测试if-else语句结构
*/
//随机生成1-100之间的一个数字作为分数
int score = (int)(Math.random()*100) + 1;
System.out.println(score);
if(score>=90){
System.out.println("你很优秀");
}else if(score>=80){
System.out.println("你还可以");
}else if(score>=60){
System.out.println("你刚合格");
}else{
System.out.println("需要好好努力哦!");
}

    

    Switch 多选择结构

      语法格式:

       Switch(表达式){

        Case 值1:

                             语句序列1;

                             [break];

         Case 值2:

              语句序列2;

              [break];

         …

      Case 值n:

             语句序列n;

              [break];

      Default:

             默认语句;

      }

Switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。如果表达式的值与任一case值不匹配,则进入default语句(如果存在default语句的情况。)根据表达式值的不同可以执行许多不同的操作。switch语句中case标签在jdk1.5之前必须是整数(long类型除外)或者枚举,不能是字符串,在jdk1.7之后允许使用字符串(String).

要注意:当布尔表达式是等值判断的情况时,可以使用if-else if-else多选择结构或者switch结构,如果布尔表达式区间判断的情况,则只能使用if-else if-else多选择结构

流程图:

     

    /**
* 测试swtich case 语句
*/
String season = "春季";
switch(season){
case "春季":
System.out.println("春季应该踏青!!");
break;
case "夏季":
System.out.println("夏季可以游泳!!");
break;
case "秋季":
System.out.println("秋季可以露营!!");
break;
case "冬季":
System.out.println("冬季可以滑雪!!");
break;
default:
System.out.println("输入的季节错误!!");
}

   循环结构

循环结构分为两大类,一类是当型,一类是直到型

当型:

当布尔表达式条件为true时,反复执行某语句,当布尔表达式的值为false时才停止循环,比如:while与for循环。

直到型:

先执行某语句,在判断布尔表达式,如果为true,再执行某语句,如此反复,直到布尔表达式条件为false时才停止循环,               比如do-while循环。

While循环

语法结构:

While(布尔表达式){

                         循环体;

                   }

在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前            重新计算一次。

语句中应有使循环趋向于结束的语句,否则会出现无限循环—“死“循环

While循环的结构流程图:

           

     /**
* 测试while循环
* 打印1-10
*/
int i = 1;
while(i <= 10){
System.out.println(i);
}

  

   do-while循环

语法结构:

    do{

          循环体;

    }while(布尔表达式);

do-while循环结构会先执行循环体,然后再判断布尔表达式的值,若条件为真,执行循环体,当条件为假时结束循环。do-           while循环的循环体至少执行一次。do-while循环结构流程图:

        

    /**
* 测试do while循环
* 打印1-10
*/
int j = 1;
do{
System.out.println(j);
j++;
}while(j<=10);   

    for循环

     for(初始表达式;布尔表达式;迭代因子){

          循环体;

     }

for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。for循环在第一次反复之前要进行初始化,即执行      初始表达式;随后,对布尔表达式进行判定,若判定结果为true,则执行循环体,否则,终止循环;最后在每一次反复的时候进行某种      形式的“步进“,即执行迭代因子。

A,初始化部分设置循环变量的初值

  B,条件判断部分为任意布尔表达式

C,迭代因子控制循环变量的增减

for循环在执行条件判定后,先执行循环体部分,在执行步进。

for循环的流程图:

   

    /**
* 测试for循环
*/
for(int k=1;k<=10;k++){
System.out.println(k);
}

break与continue

break表示结束当前循环,常用于跳出循环,continue则是结束本次循环,开始下次循环

  

package com.aira.basic.data;

/**
* 测试break和continue
* @author aria
*
*/
public class BreakTest { public static void main(String[] args) {
/**
* 测试break
*/
for(int i=1;i<=5;i++){
if(i==3){
break;
}
System.out.println(i);
}
System.out.println("-------------------");
/**
* 测试continue
*/
for(int i=1;i<=5;i++){
if(i==3){
continue;
}
System.out.println(i);
} } }

 结果: 

 

Java基础语法(二)之流程控制语句的更多相关文章

  1. Java基础语法(5)-特殊流程控制语句

    title: Java基础语法(5)-特殊流程控制语句 blog: CSDN data: Java学习路线及视频 1.嵌套循环结构 将一个循环放在另一个循环体内,就形成了嵌套循环.其中,for ,wh ...

  2. Java基础篇(03):流程控制语句,和算法应用

    本文源码:GitHub·点这里 || GitEE·点这里 一.分支语句 流程控制语句对任何一门编程语言都是非常重要的,Java中基于流程控制程序执行的不同步骤和代码块. 1.IF条件 IF条件语句会根 ...

  3. Java基础(二)流程语句与数组

    Java流程语句详解:https://www.cnblogs.com/jiajia-16/p/6008200.html Java数组详解:https://www.cnblogs.com/jiajia- ...

  4. Java基础语法<四> 控制流程

    笔记整理 来源于<Java核心技术卷 I > <Java编程思想>   if while do while for   switch case case标签可以是: 类型为ch ...

  5. java基础语法(二)

    一.运算符 算数运算符 算数运算符用在数学表达式中,它们的作用和在数学中的作用一样. 操作符 描述 例子 + 两数相加 1+1=2 - 两数相减 2-1=1 * 两数相乘 1*1=1 / 两数相除 1 ...

  6. Java基础语法<二> 字符串String

    1. 代码点与代码单元 Java字符串由char序列组成.大多数的常用Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示. length()方法将返回采用UTF-16编码表示 ...

  7. Java基础语法(二)<运算符>

    运算符: 下面的都是相关的练习: 1.键盘录入一个三位整数数,请分别获取该三位数上每一位的数值 import java.util.Scanner; public class Test02 { publ ...

  8. Java基础语法(7)-数组

    title: Java基础语法(7)-数组 blog: CSDN data: Java学习路线及视频 1.数组的概述 数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并 ...

  9. Java基础语法(6)-注释

    title: Java基础语法(6)-注释 blog: CSDN data: Java学习路线及视频 用于注解说明解释程序的文字就是注释. 提高了代码的阅读性:调试程序的重要方法. 注释是一个程序员必 ...

随机推荐

  1. iOS 代码混淆

    一般做了防调试的话,被调试进程会退出的,是防动态分析措施. 代码混淆加花这些是防静态分析措施. 反调试是防动态分析措施. 混淆的方法方法名混淆其实就是字符串替换,有2个方法可以,一个是#define, ...

  2. fastJson解析报错:com.alibaba.fastjson.JSONException: can't create non-static inner class instance.

    原因: 如果出现类嵌套类的情况,需要将被嵌套的那个类设置为static. 比如: public class AA { // 相关属性 public class BB {//会报错 // 相关属性 } ...

  3. 使用LVM进行分区扩展的记录

    场景:在磁盘分区空间不够的情况下,要扩展分区空间 因为使用的是虚拟机,所以可以对原有的硬盘上进行扩展,而不需要新增一个硬盘 1.扩展磁盘并使用fdisk工具进行分区 虚拟机关机后对磁盘进行扩展,扩展到 ...

  4. Oracle 10.2.0.5升级至11.2.0.4

    参照MOS 官方文档Complete Checklist for Manual Upgrade to Oracle Database 11gR2 (11.2) (Doc ID 837570.1)一.升 ...

  5. 移除Excel工作表密码保护小工具含C#源代码

    有朋友发了个Excel.xlsx文件给我,让我帮忙看看里面是怎么做出来的.打开审阅后发现,每个Excel工作表都添加了密码保护: 看不到里面的隐藏列和公式等等,感觉很神秘.于是研究了一下Excel文件 ...

  6. Pocket Gem OA: Path Finder

    1. 有向图 找所有start node到end node之间的路径 输入是一个txt 形式如下: A E A : B C D. B : C C : E D : B. 输出一个List<Stri ...

  7. PHP----------一群猴子排成一圈,按1,2,...,n依次编号。

    1.一群猴子排成一圈,按1,2,...,n依次编号.然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去, 直到最后只剩下一只猴子为止,那 ...

  8. XML文件的读取

    <?xml version="1.0" encoding="gbk"?> <!--设置编码格式为gbk--> <!DOCTYPE ...

  9. CentOS 7 Gitlab+Jenkins持续集成+自动化部署

    基于上次的环境<部署Gitlab+Jenkins持续集成环境> 来实现自动化部署 系统管理–>插件管理–>安装以下插件: Credentials Plugin(默认已经安装) ...

  10. centos7基于SVN+Apache+IF.svnadmin实现SVN的web管理

    一.介绍 本文介绍的是CentOS7上搭建基于Apache.SVN Server.iF.svnadmin实现web后台可视化管理SVN. iF.SVNAdmin应用程序是Subversion授权文件基 ...