【4】 java流程控制之选择结构
一、流程控制概述
三大流程控制语句:顺序、选择、循环
1)顺序:依次执行
2)选择:if ,if-else,多重 if结构,嵌套if,switch
3)循环:while,do-while,for,循环嵌套
二、多重if结构
格式:
if(条件){ 语句1; } else{ 语句2; }
多重if-else结构案例:
import java.util.Scanner; public class ScoreAssess { public static void main(String[] args) { /* 成绩大于90分,输出“优秀” 成绩大于80分且小于90分的,输出“良” 成绩大于等于60分小于80分,输出“中” 成绩小于60分,输出“不及格” */ System.out.println("请输入成绩"); Scanner sc= new Scanner(System.in); int score= sc.nextInt(); if (score>=90) System.out.println("优秀"); else if (score>=80)//相当于if((score>=80)&(score<90)) System.out.println("良"); else if(score>=60)//相当于if((score>=60)&(score<80)) System.out.println("中等"); else System.out.println("不及格"); } }
请输入您的成绩: 85
良好
请输入您的成绩: 55
不及格
请输入您的成绩: 30
不及格
三、嵌套if结构
else会和离自己最近的if匹配,为了保证else和正确的if匹配,一定不要遗漏大括号。
格式:
if(表达式) if(表达式) if(表达式) 语句; else 语句;
嵌套if结构结构案例:
public class Twe { public static void main(String[] args) { //定义两个整型变量并初始化 int x=15,y=5; //判断x和y是否相等 if(x!=y) { if(x>y) { System.out.println(x+"大于"+y); }else { System.out.println(x+"小于"+y); } }else { System.out.println(x+"和"+y+"相等"); } } }
四、switch结构
1)if和switch的区别
if结构:判断条件是boolean类型,判断条件是一个范围。
switch结构:判断条件是常量值。ps:有多条case语句,break语句不是必须的可以去掉。default类似else
2.)switch的整个流程。
计算表达式的值,然后与case进行匹配,匹配成功则执行下面的语句,如果有break则跳出整个switch结构,没有则下面case情况的语句及default的语句都会执行。
最后的default是前面的case都不成立则执行,但是default可以省略,如果case所有情况都不满足且没有default,则跳出switch结构。
switch又叫多路选择结构。
3)在JDK6.0及之前的版本中,switch中表达式的值只能为int类型,或者与int等价的类型如byte,short,char类型。但是JDK7.0之后表达式的值可以是基本数据类型byte,short,int,char及String类型。
4)switch的代码结构
switch(表达式){ case 常量表达式1: 语句1;break; case 常量表达式2: 语句2;break; default: 语句3; }
5)案例
import java.util.Scanner; public class Demo1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个数字:"); int n = sc.nextInt(); switch (n) { 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的范围之内!"); } } } //System.out.println("请输入一个表示星期的英文单词:"); //String week = sc.next();//输入字符串,存在变量week中 //week=week.toUpperCase();//字符串全部改为大写