Java基础教程【第四章:Java流程控制】

简介: Java基础教程【第四章:Java流程控制】

引言:

Java 虽然是面向对象的语言,但在局部的语句块内部仍然需要借助结构化的基本流程结构(顺序结构、分支结构、循环结构)来组织语句,完成相应的逻辑功能。


三种基本流程控制结构示意图分别如下图所示:

image.png


1. 顺序结构

代码中最常见的结构,按顺序执行的语句叫做顺序语句。

//顺序结构
  public static void main(String[] args) {
     一天中按时做的事情 : 顺序结构
      System.out.println("吃早饭"); // 1
      System.out.println("吃中饭"); // 2
      System.out.println("吃晚饭"); // 3
   }

2. 分支语句

2.1 if 语句

if(返回boolean值的条件表达式){undefined

语句组;

}

案例:
Scanner sc = new Scanner(System.in);
int age = sc.nextInt();
if(age<10){
System.out.println("发你一个帮帮糖");
}
System.out.println("请进入游乐场");

image.png


2.2 if-else 语句

if(条件表达式){undefined

语句组1

}else {undefined

语句组2

}


案例:
Scanner sc = new Scanner(System.in);
float height = sc.nextFloat();
if(height<1.3f){
System.out.println("请购买儿童票");
}else {
System.out.println("请购买成人票");
}
System.out.println("请进场");

2.3 if-else if … -else语句

案例:百分制的评分:90-100 分以上优秀;80-90 分以上良好;60-80 分以上及格;其它的淘汰。

Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
if(score>90){
System.out.println("优秀");
}else if (score>80) {
System.out.println("良好");
}else if (score>60) {
System.out.println("及格");
}else {
System.out.println("淘汰");
}

2.4 Switch 语句

switch 语句(又称开关语句)是和 case 语句一起使用的,其功能是根据某个表达式的值在多个 case 引导的多个分支语句中选择一个来执行。它的一般格式如下:

switch (key) {undefined

case value:

语句块1;

break;

……

default:

break;

}

案例
int i = 3;
switch (i) {
case 1:
  System.out.println(1);
  break;
case 2:
  System.out.println(2);
  break;
default:
  System.out.println("default");
  break; 
}

PS:


• default 语句是可选的,它接受除上面接受值的其他值,通俗的讲,就是谁也不要的都归它。


• case 后面可以跟多个语句,这些语句可以不用大括号括起来。


• switch 后面括号中表达式的值必须是符合 byte,char,short,int 类型的常量表达式,jdk1.7 以后可以使用String,而不能用浮点类型或 long 类型。


• 一个 switch 语句可以代替多个 if—else 语句组成的分支结构,而 switch 语句从思路上显得更清晰。


3. 循环语句

image.png


3.1 while 循环

语法:

while (条件表达式) {undefined

循环体语句; }


在循环刚开始时,会计算一次“条件表达式”的值。当条件为假时,将不执行循环体,直接跳转到循环体外,执行循环体外的后续语句;当条件为真时,便执行循环体。每执行完一次循环体,都会重新计算一次条件表达式,当条件为真时,便继续执行循环体,直到条件为假才结束循环。


案例:循环输出 1-100;


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

3.2 do while 循环

语法:

do {undefined

循环体语句;

} while (条件表达式);


do-while 循环与 while 循环的不同在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次循环语句。注意:while()后一定要加“;”


案例:循环输出 1~100;

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

PS:while 循环和 do-while 循环的区别

while 循环只有当条件表达式为 true 的时候才会进入循环体,do-while 循环首先执行一次循环体中的内容,无论条件表达式是否为 true;


3.3 for 循环

语法:

for (表达式1;表达式2;表达式3) {undefined

循环体语句;

}


表达式 1 一般是一个赋值语句,它用来给循环控制变量赋初值;表达式 2 是一个布尔类型的表达式,它决定什么时候退出循环;表达式 3 一般用来修改循环增量表达式。这三个部分之间用“;”分开。

案例:循环输出 1-100;
for (int i = 1; i <= 100; i++) {
System.out.println(i);
}

练习:请问 i 输出是多少?

int i = 1;
for (; i <= 100; i++) {
}
System.out.println(i);

3.4 增强 for 循环

这是JDK5.0 之后的新特性


可以用来处理数组中的每个元素(其它类型的集合也可以),而不需要指定下标;

for (类型 变量 : 集合) {undefined

}

类型:值集合中保存的数据的数据类型;

变量:表示集合中的每一个元素;

集合:需要处理的集合对象;


3.5. 跳转语句

break、continue


在 Java 语言中,可用 break 和 continue 控制循环的流程。其中,break 用于强行退出循环,不执行循环中剩余的语句。而 continue 则停止执行当前的循环,开始新的循环。


3.6 递归

函数自己调用自己

案例:1+2+3….+100;
public static int sum(int num){
return num==1?1:num+sum(num-1);
}

4. 注释

java中的注释分为单行注释和多行注释两种


4.1 单行注释

//这是单行注释
//前面用两个斜杠

4.2多行注释

/*
这是多行注释
可以注释一整段代码
一般放程序开头
说明程序的作者
和创作时间
*/

目录
相关文章
|
1天前
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十九)-java+ selenium自动化测试-隐藏元素定位与操作(详解教程)
【5月更文挑战第13天】本文主要讨论了在Selenium自动化测试中如何处理前端隐藏元素的问题。隐藏元素通常是通过`type="hidden"`或`style="display: none;"`属性实现的,它们在页面上不可见,但仍然存在于HTML代码中。Selenium可以定位到这些隐藏元素,但无法直接进行点击、输入等操作,会报错“ElementNotInteractableException”。
18 3
|
2天前
|
JavaScript 前端开发 测试技术
《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)
【5月更文挑战第12天】本文介绍了WebDriver中用于判断元素状态的三个方法:`isEnabled()`、`isSelected()`和`isDisplayed()`。`isSelected()`检查元素是否被选中,通常用于勾选框。`isDisplayed()`则用来判断元素是否在页面上可见。`isEnabled()`方法确定元素是否可操作,例如是否能点击或输入内容。
11 1
|
3天前
|
存储 JavaScript Java
《手把手教你》系列技巧篇(四十七)-java+ selenium自动化测试-判断元素是否显示(详解教程)
【5月更文挑战第11天】WebDriver 的 `isDisplayed()` 方法用于检查页面元素是否可见,如果元素存在于DOM中且可视,返回`true`,否则返回`false`。在自动化测试中,这个方法常用于验证元素是否真正显示在页面上。示例代码展示了如何使用 `isDisplayed()` 判断百度登录页面的特定错误提示文字是否出现。
14 1
|
3天前
|
Java
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
|
4天前
|
JavaScript Java 测试技术
《手把手教你》系列技巧篇(四十六)-java+ selenium自动化测试-web页面定位toast-下篇(详解教程)
【5月更文挑战第10天】本文介绍了使用Java和Selenium进行Web自动化测试的实践,以安居客网站为例。最后,提到了在浏览器开发者工具中调试和观察页面元素的方法。
14 2
|
4天前
|
算法 Java Python
保姆级Java入门练习教程,附代码讲解,小白零基础入门必备
保姆级Java入门练习教程,附代码讲解,小白零基础入门必备
|
5天前
|
存储 算法 Java
铁子,你还记得这些吗----Java基础【拓展面试常问题型】
铁子,你还记得这些吗----Java基础【拓展面试常问题型】
54 1
|
5天前
|
安全 Java 调度
Java基础面试,String,StringBuffer,StringBuilder区别以及使用场景
* String是final修饰的,不可变,每次操作都会产生新的对象。 * StringBuffer和StringBuilder都是在原对象上进行操作 * StringBuffer是线程安全的,StringBuilder是线程不安全的。 * StringBuffer方法是被synchronized修饰的
|
5天前
|
存储 Java 数据库
[Java 基础面试题] IO相关
[Java 基础面试题] IO相关
|
5天前
|
存储 安全 Java
[Java基础面试题] Map 接口相关
[Java基础面试题] Map 接口相关