热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java流程控制语句(条件语句和循环语句)

A:什么是流程控制语句·流程控制语句:可以控制程序的执行流程。B:流程控制语句的分类1·顺序结构
 
A:什么是流程控制语句
·流程控制语句:可以控制程序的执行流程。
B:流程控制语句的分类
1·顺序结构

  顺序结构概述: 是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

  总的来说:写在前面的先执行,写在后面的后执行

2·选择结构

  选择结构 也被称为分支结构。

  选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。

  Java语言提供了两种选择结构语句 if语句 switch语句

 

2.1  if语句有三种格式(选择结构)

①  if语句第一种格式:

  if(关系表达式) {

    语句体

  }

执行流程: 首先判断关系表达式看其结果是true还是false

      如果是true就执行语句体

      如果是false就不执行语句体

注意:

关系表达式无论简单还是复杂,结果必须是boolean类型

if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。

一般来说:有左大括号就没有分号,有分号就没有左大括号  例如:

int b = 100;
if(b != 100); //这里其实是有语句体的,只不过是空语句体。

//代码块
{
System.out.println("b的值是100");
System.out.println("over");
}


 

②  if语句第二种格式:

  if(关系表达式) {

    语句体1;

  }else {

    语句体2;

  }

执行流程: 首先判断关系表达式看其结果是true还是false

      如果是true就执行语句体1

      如果是false就执行语句体2

 

注意:else后面是没有比较表达式的,只有if后面有。


 

三元运算符实现的,都可以采用if语句实现。反之不成立。

什么时候if语句实现不能用三元改进呢?
  当if语句控制的操作是一个输出语句的时候就不能。
  为什么呢?因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。

class IfDemo4 {
  public static void main(String[] args) {
    //获取两个数据的最大值
    int a = 10;
    int b = 20;

    //用if语句实现
    int max1;
    if(a > b) {
      max1 = a;
    }else {
      max1 = b;
    }
    System.out.println("max1:"+max1);

    //用三元改进
    int max2 = (a > b)? a: b;
    System.out.println("max2:"+max2);
    System.out.println("----------");

    //判断一个数据是奇数还是偶数,并输出是奇数还是偶数
    int x = 100;

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

    //用三元改进;这种改进是错误的。
    //String s = (x%2 == 0)?System.out.println("100是一个偶数");:System.out.println("100是一个奇数");;
   }
 }


 

③  if语句第三种格式:

  if(关系表达式1) {

    语句体1;

  }else if (关系表达式2) {

    语句体2;

  } …

  else {

    语句体n+1;

  }

执行流程: 首先判断关系表达式1看其结果是true还是false

      如果是true就执行语句体1

      如果是false就继续判断关系表达式2看其结果是true还是false

      如果是true就执行语句体2

      如果是false就继续判断关系表达式…看其结果是true还是false

       …

      如果没有任何关系表达式为true,就执行语句体n+1。


 

④  嵌套 if 语句

  只有当外层 if 的条件成立时,才会判断内层 if 的条件。

     语法:

    

   执行过程:

   

  示例代码:

 




 

2.2  switch语句(选择结构)

switch语句格式:

  switch(表达式) {

    case 值1:

      语句体1;

      break;

    case 值2:

      语句体2;

      break;

     …

    default:

      语句体n+1;

      break;

  }

 

格式解释:

  switch表示这是switch语句

    表达式的取值:byte,short,int,char

    JDK5以后可以是枚举

    JDK7以后可以是String

  case后面跟的是要和表达式进行比较的值

  语句体部分可以是一条或多条语句

  break表示中断,结束的意思,可以结束switch语句

  default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

 

执行流程:

  首先计算出表达式的值

  其次,和case依次比较,一旦有对应的值,就会执行

  相应的语句,在执行的过程中,遇到break就会结束。

  最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

 示例代码:

  

 


 

 
不得不说的几点小秘密:
1、 switch 后面小括号中表达式的值必须是整型或字符型
2、 case 后面的值可以是常量数值,如 1、2;也可以是一个常量表达式,如 2+2 ;但不能是变量或带有变量的表达式,如 a * 2
3、 case 匹配后,执行匹配块里的程序代码,如果没有遇见 break 会继续执行下一个的 case 块的内容,直到遇到 break 语句或者 switch 语句块结束:
4、 可以把功能相同的 case 语句合并起来,如
5、 default 块可以出现在任意位置,也可以省略
 



 

3·循环结构 

循环语句的组成
  初始化语句:
    一条或者多条语句,这些语句完成一些初始化操作。
  判断条件语句:
    这是一个boolean 表达式,这个表达式能决定是否执行循环体。
  循环体语句:
    这个部分是循环体语句,也就是我们要多次做的事情。
  控制条件语句:
    这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。

 

3.1 Java循环语句    for

for循环语句格式:
  for(初始化语句;判断条件语句;控制条件语句) {
    循环体语句;
  }
执行流程:
  A:执行初始化语句
  B:执行判断条件语句,看其结果是true还是false
    如果是false,循环结束。
    如果是true,继续执行。
  C:执行循环体语句
  D:执行控制条件语句
  E:回到B继续

注意事项:
A:判断条件语句无论简单还是复杂结果是boolean类型。
B:循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
C:一般来说:有左大括号就没有分号,有分号就没有左大括号

 

需要留心的几个小细节:

1、  for 关键字后面括号中的三个表达式必须用 “;” 隔开,三个表达式都可以省略,但 “;” 不能省略。
    a. 省略 “初始化语句”,可以在 for 语句之前由赋值语句进行变量初始化操作,如:
  
    b. 省略 “判断条件语句”,可能会造成循环将一直执行下去,也就是我们常说的“死循环”现象,如:
  
        在编程过程中要避免“死循环”的出现,因此,对于上面的代码可以在循环体中使用 break 强制跳出循环(关于 break 的用法会在后面介绍)。
    c. 省略 “控制条件语句”,可以在循环体中进行循环变量的变化,如:
  
2、  for 循环变量初始化和循环变量变化部分,可以是使用 “,” 同时初始化或改变多个循环变量的值,如:
  
    代码中,初始化变量部分同时对两个变量 i 和 j 赋值,循环变量变化部分也同时对两个变量进行变化,运行结果:
  
3、  循环条件部分可以使用逻辑运算符组合的表达式,表示复杂判断条件,但一定注意运算的优先级,如:
  
    代码中,必须同时满足变量 i 小于 10 ,并且 i 不等于 5 时才会进行循环,输出变量 i 的值。 (运算结果:1.2.3.4)到5截止
 

 

3.2 Java循环语句    while

 

 

3.3 Java循环语句    do...while
 
 
 
 
 
 
 



 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 
 

 

Java循环语句    while

生活中,有些时候为了完成任务,需要重复的进行某些动作。在 Java 中实现功能时,也经常需要重复执行某些代码

    Java 常用的 3 种循环: while 、 do...while 、 for

    本小节咱们先来聊聊 while

语法:

 

执行过程:

<1 >、 判断 while 后面的条件是否成立( true / false )

<2 >、 当条件成立时,执行循环内的操作代码 ,然后重复执行<1 >、<2 >, 直到循环条件不成立为止

特点:先判断,后执行

如:


 

Java循环语句    do...while

    do...while 循环与 while 循环语法有些类似,但执行过程差别比较大。
语法:
执行过程:
<1>、 先执行一遍循环操作,然后判断循环条件是否成立
<2>、 如果条件成立,继续执行<1 > 、<2 >,直到循环条件不成立为止
特点: 先执行,后判断
由此可见,do...while 语句保证循环至少被执行一次!
例如,依然输出 1000 遍“我爱慕课网”,使用 do...while 的实现代码为:

 

 

 

 

 

 
 
 

Java循环跳转语句    break

生活中,我们经常会因为某些原因中断既定的任务安排。在 Java 中,我们可以使用 break 语句退出指定的循环,直接执行循环后面的代码。
例如,使用循环输出 1--10的数值,其中,如果数值大于 2 ,并且为 3 的倍数则停止输出。示例代码:
运行结果:1 2 结束啦

 

Java循环跳转语句    continue

continue 的作用是跳过循环体中剩余的语句执行下一次循环。

例如,打印 1--10 之间所有的偶数,示例代码:

    运行结果:2.4.6.8.10


 

Java循环语句    多重循环

    循环体中包含循环语句的结构称为多重循环。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。在二重循环中,外层循环每执行一次,内层循环要执行一圈。
如下所示:
使用 * 打印长方形;示例代码:
    执行流程:当 i = 1 时,外层循环条件成立,进入内层循环,开始打印第一行内容。此时, j 从 1 开始,循环 8 次,内层循环结束后换行,实现第一行 8 个 * 的输出。接下来返回外层循环 i 变为 2 ,准备打印下一行,依此类推,直到完成长方形的打印。
 



 

只是扩展:

while循环,与for循环基本一样,除了格式:

int i = 1;
while(i<11){
System.out.println(i);
i++;
}
while(true){ } //无限循环

do循环和其它循环不一样,主要两点:

1 do/while循环以分号;做结束,其它的循环以{ }做结束。
2 do/while循环先执行再判断条件,因此至少执行一次。

int i = 1;
do{
System.out.println(i);
i++;
}while(i<11);

 

 

 

 

return和break以及continue的区别

return是结束方法
·break是跳出循环
·continue是终止本次循环继续下次循环

 
 
 
 
 

推荐阅读
  • switch分支结构一、程序运行流程的分类1、顺序结构:根据程序顺序依次执行。2、分支结构:根据判断决定程序的执行顺序。3、循环结构。分支结构三要素&# ... [详细]
  • Java SE从入门到放弃(三)的逻辑运算符详解
    本文详细介绍了Java SE中的逻辑运算符,包括逻辑运算符的操作和运算结果,以及与运算符的不同之处。通过代码演示,展示了逻辑运算符的使用方法和注意事项。文章以Java SE从入门到放弃(三)为背景,对逻辑运算符进行了深入的解析。 ... [详细]
  • JAVA流程控制结构在java中有三种流程控制结构:顺序结构,选择结构,循环结构顺序结构:顺序结构,是指程序从 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 那你就是学的c语言,跟我学c语言
    本文目录一览:1、如何学习C语言?2、新手如何 ... [详细]
author-avatar
石隆雅雯79
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有