Java后端必会:利用for循环和if判断实现数组数据过滤

📅 2026/7/13 14:23:31
Java后端必会:利用for循环和if判断实现数组数据过滤
前言流程控制语句分为3种1顺序控制2分支控制让程序有选择的的执行,分支控制有三种单分支 if双分支 if-else多分支 if-else if-....-else3循环控制一.if1.格式一 单条件判断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{ 语句体n1; } */ //键盘录入小红的成绩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 (score60){ 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 ,你被淘汰了~); } } }二.switch1.格式Switch流程图表达式可以是byte short int char JDK7之后可以是Stringcase给出的常量不能重复必须是字面量注在编程语言中字面量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 sum0; sum i; // 情况二 } System.out.println(sum); } }四.while1.基本语法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...while1.基本语法循环变量初始化;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(李三还钱了); } }