流程控制语句分类:
顺序结构
分支结构 (if,switch)
循环结构 (for,while,do…while)
if语句
格式1:
if(关系表达式){
语句体
}
先执行计算关系表达式的值
如果关系表达式的值为true就执行语句体
如果关系表达式的值为false就不执行语句体
继续执行后面的语句内容。
格式2:
if(关系表达式){
语句体1;
}else{
语句体2;
}
先执行计算关系表达式的值
如果关系表达式的值为true就执行语句体1
如果关系表达式的值为false就执行语句体2
继续执行后面的语句内容。
案例:奇偶数
需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数。
分析:
1.任给一数据,需要键盘录入,
使用键盘录入功能需要导包
import java.util.Scanner;
创建对象
Scanner sc = new Scanner(System.in);
接收数据
int number = sc.nextInt();
2.判断整数是偶数还是奇数,要分两种情况,使用 if…else结构
if(){
} else (){
}
3.判断是否为偶数,用取余运算符:number % 2 ==0
if(number % 2 ==0){
} else (){
}
4.根据判定情况,在控制台输出对应的内容
if(number % 2 == 0){
System.out.println(number + “是偶数”); //输出数据
}else {
System.out.println(number + “是奇数”); //输出数据
}
import java.util.Scanner; //导包 public class one { public static void main(String[] arges){ Scanner sc = new Scanner(System.in); //创建对象 int number = sc.nextInt(); if(number % 2 == 0){ System.out.println(number + "是偶数"); //输出数据 }else { System.out.println(number + "是奇数"); //输出数据 } } }
格式3:
if(关系表达式){
语句体1;
}else if(关系表达式2){
语句体2;
}
…
else{
语句体n+1;
}
先执行计算关系表达式1的值
如果关系表达式的值为true就执行语句体1;如果值为false就计算表达式2的值
如果关系表达式的值为true就执行语句体2;如果值为false就计算表达式3的值
…
如果没有任何关系表达式为true,就执行语句体n+1。
案例:考试奖励
需求:根据不同成绩,输出不同的礼物。
分析:
1.成绩未知,可以先用键盘录入的方式获取值
import java.util.Scanner; //导包
Scanner sc = new Scanner(System.in); //创建对象
int number = sc.nextInt();
2.由于奖励类型多,用if…else…if格式实现。
3.为每种判断设置对应的条件
4.为每种判断设置对应的奖励
import java.util.Scanner; //导包 public class one { public static void main(String[] arges){ Scanner sc = new Scanner(System.in); //创建对象 System.out.println("请输入成绩:"); int score = sc.nextInt(); //接受数据 if(score > 100 || score <0){ System.out.println("输入的数据有误!!!"); }else if(score >= 95 && score <= 100){ System.out.println("山地车一辆"); }else if(score >= 90 && score <=94){ System.out.println("游乐场"); }else if(score >=80 && score <= 89){ System.out.println("变形金刚玩具"); }else { System.out.println("胖揍"); } } }
注:测试数据时要测试正确数据、错误数据以及边界数据。
switch语句
格式:
switch(表达式){
case 值 1:
语句体1;
break;
case 值 2:
语句体2;
break;
…
default:
语句体n+1;
[break;]
}
格式说明:
表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String;
case:以后跟的是要和表达式进行比较的值;
break:表示中断,结束的意思,用来结束switch语句;
default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
执行流程:
1.首先计算表达式的值
2.依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束
3.如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束。
案例:输入一个数,判断周几。
import java.util.Scanner; //导包 public class one { public static void main(String[] arges){ Scanner sc = new Scanner(System.in); //创建对象 System.out.println("请输入星期数:"); int week = sc.nextInt(); //接受数据 switch (week){ 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("输入有误!!!"); } } }
案例:春夏秋冬。
需求:一年有12个月,分属四个季节,输入一个月份判断是哪个季节,并输出。
分析:
1.录入月份,导包,创建,接收。
2.switch语句实现多种情况
3.在每种情况中,输出所对应的季节。
import java.util.Scanner; //导包 public class one { public static void main(String[] arges){ Scanner sc = new Scanner(System.in); //创建对象 System.out.println("请输入月份:"); int month = sc.nextInt(); //接受数据 switch (month){ case 3: //case穿透 case 4: case 5: System.out.println("春季"); break; case 6: case 7: case 8: System.out.println("夏季"); break; case 9: case 10: case 11: System.out.println("秋季"); break; case 12: case 1: case 2: System.out.println("冬季"); break; default: System.out.println("输入有误!!!"); } } }
注:在switch语句中,如果case控制的语句体后面不写break,将出现穿透现象,在不判断下一个case值得情况下,向下运行,知道遇到break,或整个switch语句结束。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)