java分支控制,Java分支语句控制详解

Java分支语句控制详解 一、分支:常见的为if和switch 1.if详解 语法: if(条件语句) {   //符合条件   分支1   } else {       //不符合   分支2 } 例题:从键盘输入一个整数,判断是否能被3或者被5整除,如果能输出”该整数是3或5的倍数”,否则输出”该数不能被3或5中的任何一个数整除”。 从例题中我们分析该题告诉我们的已知条件: a.条件语句:此题中的条件语句是判断一个数能否被3或者5整除。 b.分支1:输出"该整数是3或5的倍数" c.分支2:输出"该数不能被3或5中的任何一个数整除 该题涉及的知识点: ①键盘接收输入即Scanner ②if分支 ③逻辑运算符 ④取余运算符% 实现代码: public class Demo { public static void main(String[] args) { //  首先从键盘输入一个数 Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int num = sc.nextInt(); //  开始判断输入的数num是否符合条件 if (num % 3 == 0 || num % 5 == 0) { System.out.println("该数是3或5的倍数!"); } else { System.out.println("该数不能够被3或5中的任何一个数整除!"); } } } 2.switch详解 语法: switch(条件语句) { case 条件语句结果1: //相应的逻辑语句 break; case 条件语句结果2: //相应的逻辑语句 break; ... default: //相应的逻辑语句 break; } 其中default当case中有没有符合条件语句的结果,default中的逻辑语句才会执行。break指跳出当前循环。 特别要注意的是:switch括号内最终的结果只能为: byte short int char、enum(枚举)、String(JDK 1.7以上才支持) 例题:制定学习计划,星期一、星期三、星期五学习编程,星期二、星期四、星期六学习英语,星期日休息。 /**  * 制定学习计划,星期一、星期三、星期五学习编程,星期二、星期四、星期六学习英语,星期日休息。  */ import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); switch (str) { case "星期一": System.out.println("学习编程"); break; case "星期二": System.out.println("学习英语"); break; case "星期三": System.out.println("学习编程"); break; case "星期四": System.out.println("学习英语"); break; case "星期五": System.out.println("学习编程"); break; case "星期六": System.out.println("学习英语"); break; case "星期日": System.out.println("休息"); break; } } } 虽然这样是实现了我们的题目要求,但是看到代码还是有很多的冗余,记得老师不止一次告诉我们,作为程序员代码要简洁,整理代码如下: public class Demo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); switch (str) { case "星期一": case "星期三": case "星期五": System.out.println("学习编程"); break; case "星期二": case "星期四": case "星期六": System.out.println("学习英语"); break; case "星期日": System.out.println("休息"); break; } } } 或许很多人认为可以将星期二、四、六在default来实现,但是这样的程序存在bug: switch (str) { case "星期一": case "星期三": case "星期五": System.out.println("学习编程"); break; default: System.out.println("学习英语"); break; case "星期日": System.out.println("休息"); break; } 当我们输入星期九的时候,明显也有输出结果:学习英语。这显然不符合题意。