【JAVA零基础入门系列】Day8 Java的控制流程

简介:   【JAVA零基础入门系列】(已完结)导航目录Day1 开发环境搭建Day2 Java集成开发环境IDEADay3 Java基本数据类型Day4 变量与常量Day5 Java中的运算符Day6 Java字符串Day7 Java输入与输出Day8 Java的控制流程Day9 Ja...

  【JAVA零基础入门系列】(已完结)导航目录

  什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等。举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下外面是否下雨,下雨的话就得带伞,否则就直接出门,同时,外面可能有很多家水果店,那去哪家买呢?这里把价格放在第一要素,所以你会一家一家跑,直到找到最便宜的那家为止。

  其实,上述买苹果的过程,已经用了两种最常用的控制流程:条件和循环。画个流程图就像这样:

  

  通过这个图,大家应该能很清楚的了解整个决策过程。其实在程序中也是这样运行的,下面再来详细的介绍一下这几个流程控制语句。

  1、条件语句if

  条件语句用于判断,就像上面的判断是否下雨一样,转换成代码就是:

if (isRaining == true){
    //take a umbrella
}
//go out

  跟if一起使用的是else以及else if,用作分支,比如说,分数在90-100分是优秀,80-90分是满意,60-80分是及格,60分以下是不及格,那么转换成代码如下:

if(mark >90 && mark <= 100){
    //优秀  
}else if(mark >80){
    //满意
}else if(mark >60){
    //及格
}else{
    //不及格
}

  上述代码中,使用了if跟else if 以及else的组合。如果mark是70分,则会先在if中判断第一个条件,因为不满足括号内条件,不成立,则流程进入else if,判断第二个条件是否满足,发现第二个条件也不满足,因此进入第三个条件,发现第三个条件满足,因此会执行及格这一部分的代码。

  2.循环语句

  Java的循环语句主要有这么几个:while,do  while,for

  while循环很简单,先判断后面的条件是否满足,如果满足则执行后续的代码,一直循环执行,直到条件不成立为止。举个栗子,总分一百分,错一个题扣十分,低于六十分则判定为失败。

  while(循环条件){
           循环体;
  }

int mark = 100;
while(mark>60){
    mark -= 10;
    System.out.println(mark);
}

  这里的"mark-=10"是"mark = mark - 10"的简写形式,这段代码会依次输出90,80,70,60,因为60>60不成立,所以循环结束。

  当然,循环中也可以用break跟continue来控制,break直接跳出当前循环,执行循环部分后面的代码,而continue则是直接跳到本轮循环的末尾。举个栗子:

int accout=0;  
       while(true){  
             
           accout++;  
           if(accout==5){  
               break;  
           }  
           if(accout==2){  
               continue;  
           }
      System.out.println("accout:"+accout);
} 

  这里会依次输出1,3,4,因为account=2时,执行continue会跳过之后的代码,直接跳到下一次循环,而account=5的时候,执行break,跳出循环。这里的while用逻辑值true来控制也是比较常见的用法。

  而do while跟while的区别在于,do while是先执行循环体,再判断条件是否成立,就是说,不论如何,循环体至少会被执行一次。两种循环适用的场合不一样。举个栗子。do-while 语句的语法格式为:

do{
        循环体;
}while(循环条件);

int i=0;  
do {  
    System.out.println("我一定会执行一次的");  
    i++;  
}while(i<5);  

  这里会输出五次“我一定会执行一次的”。

  再介绍一下最常用的循环,for循环,for 语句的基本结构如下所示:
for(初始化表达式;判断表达式;递增(递减)表达式){
    执行语句;   //一段代码
}

  初始化表达式:初始化表达式的意义,在于定义循环之前变量的值是多少,如果没有这一项,就不知道该从哪个值开始循环。

  判断表达式:判断表达式的作用在于规定循环的终点。如果没有判断表达式,那么此循环就成了死循环。

  递增(递减)表达式:这一项规定每执行一次程序,变量以多少增量或减量进行变化  

  结构清楚了,现在就举一个最基础的例子来介绍一下:(这个例子是循环输出0到5的数字。)
for(int i=0;i<5;i++){  
    System.out.println("i:"+i);  
}  

  初始化也可以放在循环之前:

int j=0;  
for(;j<=6;j=j+2){  
    System.out.println("j:"+j);  
} 

  如果要用for执行死循环的话:

for(;;){  
  System.out.println("yes");  
}  

  如果既要执行死循环又要用参数进行控制的话:

int n=0;  
for(;;n=n+10){  
    System.out.println("n:"+n);  
}  

  for循环还有一个很常用的地方就是遍历数组,所谓遍历,就是一个一个访问。

String[] strNum={"张三","李四","王五"};  
for(String str:strNum){  
    System.out.println("name:"+str);  
}  

  关于数组的知识会在之后做讲解,这里不需要深究。

  如果想要利用for实现多层循环的,可以这么写:

for(int i=0;i<5;i++){  
    for(int j=0;j<5;j++){  
        System.out.print(j+"  ");  
    }  
    System.out.println("i:"+i);  
}  

  具体的代码效果,大家可以放计算机里跑一跑,才能弄明白到底是怎么回事。

  三种循环到此就介绍完了,现在给大家说一下三种例子的具体使用场景:
  1.for一般是在循环个数已知的情况下使用的
  2.while一般是在循环个数未知,且循环受到严格控制的情况下使用的。
  3.do-while一般也是在循环个数未知,但是它和while最大的不同点在于,不管循环的条件是什么,do-while都会至少执行一次。
  
  3.多重选择:switch语句
  这里还介绍一种控制语句,叫做switch,主要用于处理多个选项,比如说,根据ABCD四个等级给出四个评语,如果用if-else语句会显得有些笨拙,尤其当需要判断的选项很多时,会更加明显。
Scanner in = new Scanner(System.in);
System.out.print("Select a mark(A,B,C,D)");
char mark = in.next();
switch(mark){
    case 'A':
        System.out.println("Wonderful!");
      break;
case 'B': System.out.println("Great!");

     break;
  case 'C': System.out.println("Good!");
        break;
  case 'D': System.out.println("Not Bad!");
      break;
  default: System.out.println("Error Input!");
      break;
}

  这里先读取你输入的字母,然后switch语句会将它与case里的条件一一对比,直到找到相符的项,然后执行后面的代码.。如果你输入的是ABCD之外的字母或是其他内容,由于没有项与其匹配,则会执行default部分的代码,输出”Error Input“。这里的每一句case后面都跟了一句break,如果不加break,则会顺序执行,直到遇到break或者全部执行完毕。

  至此,本篇内容结束,欢迎大家继续关注。
真正重要的东西,用眼睛是看不见的。
相关文章
|
1月前
|
运维 安全 Java
Java云HIS系统门诊流程
门诊系统主要实现医院门诊业务管理。是管理从门诊挂号、就诊到医生书写门诊病历、开立处方、门诊处置及门诊历史病历调阅、就诊信息查询;管理门诊收费挂号人员进行挂号、门诊收费、退费、结账、交款的整个门诊业务处理流程
33 0
|
Java 数据安全/隐私保护
java实现加密电话号码,有具体的加密流程注释
java实现加密电话号码,有具体的加密流程注释
20 0
PTA-JAVA程序流程控制结构
PTA-JAVA程序流程控制结构
|
3月前
|
JavaScript Java 项目管理
基于Java的大学生创新创业项目管理系统设计与实现(亮点:完整严谨的创新创业申请流程、适用于任何要求严格的审批类毕业设计)
基于Java的大学生创新创业项目管理系统设计与实现(亮点:完整严谨的创新创业申请流程、适用于任何要求严格的审批类毕业设计)
100 0
|
1天前
|
Java
Java基础知识整理,驼峰规则、流程控制、自增自减
在这一篇文章中我们总结了包括注释、关键字、运算符的Java基础知识点,今天继续来聊一聊命名规则(驼峰)、流程控制、自增自减。
31 3
|
2月前
|
Java 持续交付 虚拟化
深入浅出:使用Docker容器化改善Java应用的开发与部署流程
在快速迭代与持续集成的软件开发周期中,确保应用在各种环境中一致运行是一个挑战。本文介绍了如何利用Docker容器技术,来容器化Java应用,以实现环境一致性、简化配置和加速部署过程。我们将从Docker的基础知识开始,探讨其与传统虚拟机的区别,进而深入到如何创建Dockerfile,构建镜像,以及运行和管理容器。此外,文章还将涵盖使用Docker Compose来管理多容器应用的策略,以及如何利用容器化改善CI/CD流程。通过本文,读者将获得关于如何高效地利用Docker改善Java应用开发与部署流程的实践指导。
159 1
|
2月前
|
Java
Java流程控制
Java流程控制
33 0
|
3月前
|
JavaScript 小程序 Java
基于Java的大学生汉服租赁网站的设计与实现(亮点:在线支付、ECharts图表展示、完整下单流程、视频点播、点赞评论互动)
基于Java的大学生汉服租赁网站的设计与实现(亮点:在线支付、ECharts图表展示、完整下单流程、视频点播、点赞评论互动)
36 0
|
3月前
|
JavaScript 小程序 Java
基于Java的大学生在线租房平台的设计与实现(亮点:合理的租房流程、房屋报修、多角色、在线评论回复)
基于Java的大学生在线租房平台的设计与实现(亮点:合理的租房流程、房屋报修、多角色、在线评论回复)
54 0
|
3月前
|
JavaScript 小程序 Java
基于Java的大学生选修选课系统设计与实现(亮点:多角色、贴近现实的选课流程、好看的系统外观)
基于Java的大学生选修选课系统设计与实现(亮点:多角色、贴近现实的选课流程、好看的系统外观)
73 0