基于java中的流程控制语句总结(必看篇)

 更新时间:2017年06月13日 09:31:43   投稿:jingxian  
下面小编就为大家带来一篇基于java中的流程控制语句总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

程序的结构分类:

顺序结构:按照写代码的顺序 一次执行 

选择结构:根据条件的不同有选择的执行不同的代码

循环结构:在一定条件下 反复执行某一片代码

选择结构:

也叫分支结构 根据条件的不同,有选择的执行某一片代码 ,Java提供了两种 if结构 switch结构

if分为三种格式:

if的第一种格式

  if(条件){
    语句块
  }

执行流程:

先判断条件, 如果为真 则语句块执行,否则 语句块不执行

代码演示:

public static void main(String[] args) {
    System.out.println("开始");
    // 定义两个变量
    int a = 10;
    int b = 20;

    if (a == b) {
      System.out.println("a等于b");
    }

    int c = 10;
    if (a == c) {
      System.out.println("a等于c");
    }

    System.out.println("结束");
  }

if的第二种格式:

if(条件){

  语句块 1

}else{

  语句块2

}

执行流程:

先判断条件的真假, 如果为真 则只执行语句块1, 否则, 只执行语句块2

代码演示:

public static void main(String[] args) {
    System.out.println("开始");
    // 判断给定的数据是奇数还是偶数
    // 定义变量
    int a = 100;
    // 给a重新赋值
    a = 99;

    if (a % 2 == 0) {
      System.out.println("a是偶数");
    } else {
      System.out.println("a是奇数");
    }

    System.out.println("结束");
  }

if语句的第三种格式:

if(条件1){

  语句块1
}else if(条件2){

  语句块2
}else if(条件3){
  语句块3
}
...
else if(条件n){

  语句块n
}else{

  语句块n+1
}

执行流程:

先判断条件1,如果为真 则执行语句块1,执行完毕,跳出整个if结构执行if下面的语句, 否则判断条件2,

如果条件2为真,则执行语句块2,执行完毕跳出

整个if结构执行if下面的语句, 如果条件2也为假,则判断条件3,如果为真... 如果判断到条件n都为假,

则执行else中的语句块n+1

代码演示:

x和y的关系满足如下:
x>=3 y = 2x + 1;
-1<=x<3 y = 2x;
x<=-1 y = 2x – 1;

根据给定的x的值,计算出y的值并输出。

public static void main(String[] args) {

    int x = 5;
    int y;
    if (x >= 3) {
      y = 2 * x + 1;
    } else if (x >= -1 && x < 3) {
      y = 2 * x;
    } else {
      y = 2 * x - 1;
    }

    System.out.println("y的值是:"+y);
  }

选择结构switch

语法结构

switch(表达式){
case 目标值1:
语句块1
break;
case 目标值2:
语句块2
break;
case 目标值3:
语句块3
break;
...
case 目标值n:
语句块n+1
break;
default:
语句块n+1
break;

}

执行流程:

先计算表达式的结果 A ,使用A顺次的与对应的目标值进行比较,一旦发现有相等的目标值, 就停止比较,

执行对应的语句块, 再执行break跳出整个switch结构, 如果从上往下比较都没有目标值与A相等则执行

语句块n+1 结束switch

要求:

表达式: 表达式的结果,在JDK1.1~1.4时代 表达式的结果的数据类型 只能是 char byte short int

在JDK1.5~1.6时代 表达式的结果的数据类型 只能是 char byte short int enum(枚举)

在JDK1.7+时代 表达式的结果的数据类型 只能是 char byte short int enum(枚举) ,String(字符串)

目标值:

目标值的数据类型 与表达式结果的数据类型要匹配

目标值 不能重复

代码演示:

根据键盘录入的数值1、2、3...7输出对应的星期一、星期二、星期三...星期日

public static void main(String[] args) {
    //创建键盘录入对象
    Scanner sc = new Scanner(System.in);
    
    //接收数据
    System.out.println("请输入一个数字(1-7):");
    int weekday = sc.nextInt();
    
    //switch语句实现选择
    switch(weekday) {
    case 1:
      System.out.println("星期一");
      break;
    case 2:
      System.out.println("星期二");
      break;
    case 3:
      System.out.println("星期三");
      break;
    case 4:
      System.out.println("星期四");
      break;
    case 5:
      System.out.println("星期五");
      break;
    case 6:
      System.out.println("星期六");
      break;
    case 7:
      System.out.println("星期日");
      break;
    default:
      System.out.println("你输入的数字有误");
      break;
    }  
  }

循环结构:

同一件事反复做 , 反复执行同一片代码

循环的构成:

初始化语句
循环出口(条件)
循环体
循环增量

有三种 循环结构:

for 循环 while 循环 do...while循环

for循环:

语法格式:

for(初始化语句;条件;步进表达式){

循环体
}

执行流程:

第一步: 初始化语句

第二步: 判断条件, 如果条件为真 则进入第三步 ,条件为假则进入第五步

第三步: 执行循环体

第四步: 执行步进表达式 进入第二步

第五步: 结束循环

代码演示:

统计“水仙花数”共有多少个

所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

public static void main(String[] args) {
    //1.定义一个统计变量,初始值为0
    int count = 0;
    
    //2.使用for循环获取所有的三位数
    for(int x=100; x<1000; x++) {
      //3.拆分三位数的百位,十位,个位
      int ge = x%10;
      int shi = x/10%10;
      int bai = x/10/10%10;
      
      //4.利用公式判断这个三位数是否为水仙花数,如果是,统计变量++
      if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {
        count++;
      }
    }
    
    //5.循环结束之后,打印统计结果
    System.out.println("水仙花数共有:"+count+"个");
  }

while 循环:

语法结构:

初始化语句

while(条件){
循环体
步进语句
}

执行流程:

第一步: 初始化语句

第二步: 判断条件, 如果条件为真, 则进入第三步,如果条件为假, 则进入第五步

第三步: 执行循环体

第四步: 执行步进语句, 再进入第二步

第五步: 结束循环

do ... while循环

语法格式:

初始化语句

do{
循环体
步进语句

}while(条件)

执行流程:

第一步: 初始化语句

第二步: 执行循环体

第三步: 执行步进语句

第四步: 判断条件,如果条件为真,进入第二步, 否则进入第五步

第五步: 结束循环

三种循环的区别:

虽然可以完成同样的功能,但是还是有小区别:

do…while循环至少会执行一次循环体。

for循环和while循环只有在条件成立的时候才会去执行循环体

for循环语句和while循环语句的小区别:

使用区别:控制条件语句所控制的那个变量,在for循环结束后,

就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,

就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,

能够提高内存的使用效率。

循环使用推荐for -- while -- do..while

跳转语句可以控制循环的执行:

有两种

break : 在循环中使用的时候 表示结束当前循环

在switch语句中使用 表示跳出当前的switch结构

continue: 在循环中使用, 表示结束本次循环 进行下一次循环

跳转语句 脱离循环没有意义

以上这篇基于java中的流程控制语句总结(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用SpringBoot进行身份验证和授权的示例详解

    使用SpringBoot进行身份验证和授权的示例详解

    在广阔的 Web 开发世界中,身份验证是每个数字领域的守护者,在本教程中,我们将了解如何以本机方式保护、验证和授权 Spring-Boot 应用程序的用户,并遵循框架的良好实践,希望对大家有所帮助
    2023-11-11
  • Java实现Windows计算器界面

    Java实现Windows计算器界面

    这篇文章主要为大家详细介绍了Java实现Windows计算器界面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Spring Security基于散列加密方案实现自动登录功能

    Spring Security基于散列加密方案实现自动登录功能

    为了提高项目的用户体验,我们可以在项目中添加自动登录功能,当然也要给用户提供退出登录的功能。接下来学习下Spring Security基于散列加密方案实现自动登录功能,一起看看吧
    2021-09-09
  • 使用Enumeration和Iterator遍历集合类详解

    使用Enumeration和Iterator遍历集合类详解

    Enumeration和Iterator接口功能相似,而且Iterator的功能还比Enumeration多,那么为什么还要使用Enumeration
    2013-09-09
  • Maven中exec插件执行Java程序的实现

    Maven中exec插件执行Java程序的实现

    在Maven项目中,可以使用Maven的插件来执行Java程序,本文主要介绍了Maven中exec插件执行Java程序的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • java 中序列化与readResolve()方法的实例详解

    java 中序列化与readResolve()方法的实例详解

    这篇文章主要介绍了java 中序列化与readResolve()方法的实例详解的相关资料,这里提供实例帮助大家理解这部分知识,需要的朋友可以参考下
    2017-08-08
  • Java方法重载实现原理及代码实例

    Java方法重载实现原理及代码实例

    这篇文章主要介绍了Java方法重载实现原理及代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Java生成由时间组成的订单号方式

    Java生成由时间组成的订单号方式

    这篇文章主要介绍了Java生成由时间组成的订单号方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Spring运行时动态注册bean的方法

    Spring运行时动态注册bean的方法

    这篇文章主要介绍了Spring运行时动态注册bean的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • springboot宝塔简单部署的实现示例

    springboot宝塔简单部署的实现示例

    通过使用Spring Boot,可以快速构建出高效、可扩展的应用程序,而宝塔面板则提供了简单易用的网站管理和维护工具,本文将详细介绍如何将Spring Boot应用程序与宝塔面板进行集成,实现自动化部署、配置管理等操作
    2023-11-11

最新评论