Java后端必会:利用for循环和if判断实现数组数据过滤
2026/7/13 14:23:22 网站建设 项目流程

前言

流程控制语句分为3种:

1)顺序控制

2)分支控制

让程序有选择的的执行,分支控制有三种:

单分支 if

双分支 if-else

多分支 if-else if-....-else

3)循环控制

一.if

1.格式一 单条件判断

public class HelloWorld { public static void main(String[] args) { /* if(关系表达式){ 语句体; } */ int number = 19; if(number >= 10){ System.out.println("The number is greater than 10"); } // 注意:if语句的语句体只有一条,那么大括号可以省略不写 if(number >= 10) System.out.println("The number is greater than 10"); //布尔类型,可以用==,也可以不用 boolean isAdult = true; if(isAdult){ System.out.println("The person is an adult"); } if(isAdult == true){ System.out.println("The person is an adult"); } } }

2.格式二 双条件判断

public class HelloWorld { public static void main(String[] args) { /* if(关系表达式){ 语句体1; }else{ 语句体2; } */ //键盘录入一个整数表示身上的钱,大于等于100则网红餐厅,否则去小餐馆 java.util.Scanner sc = new java.util.Scanner(System.in); System.out.println("请输入身上的钱:"); int money = sc.nextInt(); //接收数据 if(money >= 100){ System.out.println("去网红餐厅"); } else{ System.out.println("去小餐馆"); //else可以不写,但是建议写上,增强代码可读性 } } }

3.格式三 多条件判断

import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { /* if(关系表达式1){ 语句体1; }else if(关系表达式2){ 语句体2; } ... else{ 语句体n+1; } */ //键盘录入小红的成绩,95-100奖励自行车,80-94奖励游乐场,70-79奖励50块钱,60-6910块钱,60以下没有奖励 Scanner sc = new Scanner(System.in); System.out.println("小红的成绩是: "); int score = sc.nextInt(); if (score >= 95 && score <= 100) { System.out.println("奖励自行车"); } //else if 可以有多个 else if (score >= 80 && score <= 94) { System.out.println("奖励游乐场"); } else if (score >= 70 && score <= 79) { System.out.println("奖励50块钱"); } else if (score >= 60 && score <= 69) { System.out.println("奖励10块钱"); } else if (score<60){ System.out.println("没有奖励"); } else { //else 可以没有,也可以有一个 System.out.println("输入的成绩不合理"); } } }

4.格式四 嵌套分支

在一个分支结构里面有完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外层分支(超过三层 就可读性不好

例题:参加歌手比赛,如果初赛成绩大于 8.0 进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组。输入成绩和性别,进行判断和输出信息。

public class NestedIf { //编写一个main 方法 public static void main(String[] args) { /* 参加歌手比赛,如果初赛成绩大于 8.0 进入决赛, 否则提示淘汰。并且根据性别提示进入男子组或女子组。 输入成绩和性别,进行判断和输出信息。 [NestedIf.java] 提示: double score; char gender; 接收字符: char gender = scanner.next().charAt(0) */ //思路分析 //1. 创建 Scanner 对象,接收用户输入 //2. 接收 成绩保存到 double score //3. 使用 if-else 判断 如果初赛成绩大于 8.0 进入决赛,否则提示淘汰 //4. 如果进入到 决赛, 再接收 char gender, 使用 if-else 输出信息 //代码实现 => 思路 --> java 代码 Scanner myScanner = new Scanner(System.in); System.out.println("请输入该歌手的成绩"); double score = myScanner.nextDouble(); if( score > 8.0 ) { System.out.println("请输入性别"); char gender = myScanner.next().charAt(0); if( gender == '男' ) { System.out.println("进入男子组"); } else if(gender == '女') { System.out.println("进入女子组"); } else { System.out.println("你的性别有误,不能参加决赛~"); } } else { System.out.println("sorry ,你被淘汰了~"); } } }

二.switch

1.格式

Switch流程图

表达式可以是byte short int char JDK7之后可以是String

case给出的常量不能重复,必须是字面量

注:在编程语言中,字面量(literal)是指源代码中直接表示固定值的符号或记号。这些值通常是不可变的,并且在程序中以直观的方式呈现,使得开发者能够立即识别其内容1。

例如,数字 3、字符串 "ABC" 或布尔值 true 都是常见的字面量形式。它们与变量形成对比,因为变量的值是未知的或可能改变的,而字面量则是明确且固定的。

import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ /* switch(表达式){ case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; case 常量表达式3: 语句3; break; ... default: 语句n; break; */ // 用switch写出以下内容的代码:键盘输入我想吃的面,店家有的面是兰州拉面、重庆小面、陕西油泼面、北京炸酱面,其他面都不卖 Scanner sc = new Scanner(System.in); System.out.println("请输入想吃的面:"); String food = sc.next(); // 接收键盘输入的字符串 switch (food){ case "兰州拉面": System.out.println("吃兰州拉面"); break; case "重庆小面": System.out.println("吃重庆小面"); break; case "陕西油泼面": System.out.println("吃陕西油泼面"); break; case "北京炸酱面": System.out.println("吃北京炸酱面"); break; default: System.out.println("其他面都不卖"); break; } } }

2.扩展知识点

default的位置和省略

  • 位置不一定要在最下面
  • 省略是没有语法问题,但运行时有default可以更完整的得知运行过程

case穿透

  • 省略break时,会依次执行语句体,直到遇到break or 大括号
import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ // 用switch语句实现 Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int num = sc.nextInt(); // 接收用户输入的整数 switch(num){ 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("输入的数字不在1-7之间"); break; } } }

switch新特性

  • JDK12及之后的版本
//使用switch新特性进行简化 switch(num){ case 1,2,3,4,5 -> System.out.println("工作日"); case 6,7 -> System.out.println("休息日"); default -> System.out.println("输入的数字不在1-7之间"); }

switch和if第三章格式各自的使用场景

  • if:用于范围的判断
  • switch:例举有限数据,让操作者任选其一(即需要在多种情况下选择其一)

三. for(重点)

1.基础格式

public class HelloWorld { public static void main(String[] args){ /* for(初始化;条件;迭代){ 循环体; }*/ //打印5次hello world for (int i = 0; i < 5; i++) { System.out.println("Hello World!"); } } }

2.例题

在实际开发中需要重复的情况下使用for循环

题目:1~100的累加

public class HelloWorld { public static void main(String[] args){ //用for循环写出一个1到100的累加和 //int sum = 0; 情况一 for(int i = 1; i <= 10; i++){ int sum=0; sum += i; // 情况二 } System.out.println(sum); } }

四.while

1.基本语法

public class HelloWorld { public static void main(String[] args) { /* 初始化语句 while(布尔表达式){ 循环体 迭代语句 }*/ //用while循环写出一个1到100的累加和 int i = 1; int sum = 0; while (i <= 100) { sum = sum + i; i++; } } }

2.for和while的区别之处

for和while的区别主要是:

1.初始化语句的位置

2.for循环次数和范围明确,while只明确循环结束条件

五.do...while

1.基本语法

循环变量初始化;

do{

循环体(语句);

循环变量迭代;

}while(循环条件);

注:先执行再判断,一定会执行一次

2.例题

如果李三不还钱,则赵四将一直使出五连鞭,直到李三说还钱为止

//编写一个main 方法 public static void main(String[] args) { //如果李三不还钱,则赵四将一直使出五连鞭,直到李三说还钱为 //[System.out.println("赵四问:还 钱吗?y/n")] do...while .. // //化繁为简 //(1) 不停的问还钱吗? //(2) 使用 char answer 接收回答, 定义一个 Scanner 对象 //(3) 在 do-while 的 while 判断如果是 y 就不在循环 //一定自己动脑筋.. Scanner myScanner = new Scanner(System.in); char answer = ' '; do System.out.println("赵四使出五连鞭~"); System.out.println("赵四问:还钱吗?y/n"); answer = myScanner.next().charAt(0); System.out.println("他的回答是" + answer); }while(answer != 'y');//判断条件很关键 System.out.println("李三还钱了"); } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询