选择结构与分支结构
目录
1.选择结构
概念:根据已知条件进行逻辑判断,满足条件后执行相应操作
基本if选择结构
语法:
if(布尔表达式){
//代码块
} 后续代码...
执行流程: 对布尔表达式进行判断。 结果为true,则先执行代码块,再执行后续代码。 结果为false,则跳过代码块,直接执行后续代码。
//如果年龄大于18可以上班
Scanner sc=new Scanner(System.in);
System.out.println("请输入年龄:");
int age=sc.nextInt();
if(age>18){
System.out.println("可以上班!");
}
if else选择结构
语法:
if(布尔表达式){
//代码块1
}else{
//代码块2
} 后续代码...
执行流程: 对布尔表达式进行判断。 结果为true,则先执行代码块1,再退出整个结构,执行后续代码。 结果为false,则先执行代码块2,再退出整个结构,执行后续代码。
//张飞 买彩票 如果中500万 就买辆奥迪
//如果没有中奖倒立洗头
Scanner sc=new Scanner(System.in);
System.out.println("请输入中奖金额:");
double money=sc.nextDouble();
if(money>=500){
System.out.println("买奥迪!");
}else{
System.out.println("直播倒立洗头!");
}
多重if选择结构
语法:
//张飞 中奖5块请所有人喝可乐
//中1万 买自行车
//中10万 买奥拓
//中100万 买奥迪
//没中奖 难受到原地爆炸
Scanner sc=new Scanner(System.in);
System.out.println("请输入中奖金额:");
double money=sc.nextDouble();
if(money>=5&&money<10000){
System.out.println("请所有人喝可乐");
}else if(money>=10000&&money<100000){
System.out.println("买辆自行车");
}else if(money>=100000&&money<100000){
System.out.println("买辆奥拓");
}else if(money>=1000000){
System.out.println("买辆奥迪");
}else{
System.out.println("难受到原地爆炸");
}
嵌套if选择结构
语法:
/*张三参加一个残运会 比赛项目是赛跑
首先赛跑比赛分为男子组和女子组
另外 分完男子组合女子组之后可以进行比赛
男子100米要求在13秒以内可以晋级下一轮比赛
女子100米要求在14秒以内可以进入下一轮
请输入他的信息,输出付行所在小组并提示是否晋级
* */
Scanner sc=new Scanner(System.in);
System.out.println("请输入付行的性别:");
String sex=sc.next();
System.out.println("请输入100米所用时间:");
int time=sc.nextInt();
//== 不能用于比较字符串(引用数据类型)
if(sex.equals("男")){//字符串比较需要使用 str1.equals(str2)
System.out.println("付行被分配到残运会100米比赛男子组!");
if(time<=13){
System.out.println("晋级了");
}else {
System.out.println("没有晋级");
}
}else{
System.out.println("付行被分配到残运会100米比赛女子组!");
if(time<=14){
System.out.println("晋级了");
}else {
System.out.println("没有晋级");
}
}
2.分支结构
语法:
/* 刘备参加一个残运会 比赛项目是赛跑
首先赛跑比赛分为男子组和女子组
另外 分完男子组合女子组之后可以进行比赛
男子100米要求在13秒以内可以晋级下一轮比赛
女子100米要求在14秒以内可以进入下一轮
请输入他的信息,输出付行所在小组并提示是否晋级
* */
Scanner sc=new Scanner(System.in);
System.out.println("请输入付行的性别:");
String sex=sc.next();
System.out.println("请输入100米所用时间:");
int time=sc.nextInt();
//== 不能用于比较字符串(引用数据类型)
if(sex.equals("男")){//字符串比较需要使用 str1.equals(str2)
System.out.println("付行被分配到残运会100米比赛男子组!");
if(time<=13){
System.out.println("晋级了");
}else {
System.out.println("没有晋级");
}
}else{
System.out.println("付行被分配到残运会100米比赛女子组!");
if(time<=14){
System.out.println("晋级了");
}else {
System.out.println("没有晋级");
}
}
可判断的类型: byte、short、int、char、String(JDK7+)
执行流程: 如果变量中的值等于值1,则执行逻辑代码1. 如果变量中的值等于值2,则执行逻辑代码2. 如果变量中的值等于值n,则执行逻辑代码n 如果变量中的值没有匹配的case值时,执行default中的逻辑代码。
注意:所有case的取值不可相同。
//规定一下张三的一周餐饮
/*周日 西红柿炒番茄
* 周一 番茄炒西红柿
* 周二 鸡蛋番茄
* 周三 番茄鸡蛋
* 周四 鸡蛋西红柿
* 周五 西红柿鸡蛋
* 其他时间 水煮鸡蛋*/
Scanner sc=new Scanner(System.in);
System.out.println("请输入星期:");
String week=sc.next();
switch (week){
case "周日":/*if(week.equals("周日")){System.out.println("西红柿炒番茄"); }*/
System.out.println("西红柿炒番茄");
break;//跳出switch
case "周一":/*else if(week.equals("周一")){System.out.println("番茄炒西红柿"); }*/
System.out.println("番茄炒西红柿");
break;
case "周二":
System.out.println("鸡蛋番茄");
break;
case "周三":
System.out.println("番茄鸡蛋");
break;
case "周四":
System.out.println("鸡蛋西红柿");
break;
case "周五":
System.out.println("西红柿鸡蛋");
break;
default: //else{}
System.out.println("水煮鸡蛋");
break;
}
3.局部变量
概念:声明在函数内部的变量,必须先赋值再使用。
作用范围:定义行开始到所在的代码块结束。
注意:多个变量,在重合的作用范围内,不可出现重名(命名冲突)
public void test(){
//1.局部变量必须先赋值后使用
int a=12;
System.out.println(a);
if(a>10){
int b=9;//使用范围 所在的大括号中
System.out.println(b);
}
int b=12;//范围重复 变量不可以重名
//System.out.println(b);//b不存在
}
局部变量:出了大括号就不认识了.
4.练习
1.请用if … else编写一个程序,用于计算体质指数BMI,并打印结果。
BMI = 体重(kg)除以身高(m)的平方 BMI结果: 过轻:低于18.5 正常:18.5-25 过重:25-28 肥胖:28-32 非常肥胖:高于32
2.实现对三个整数进行排序,输出时按照从小到大的顺序输出
3.使用switch实现一个简单的石头、剪子、布游戏,补全下面的程序。
public class Main {
public static void main(String[] args) {
System.out.println("please choice:");
System.out.println(" 1: Rock");
System.out.println(" 2: Scissors");
System.out.println(" 3: Paper");
// 用户输入:
int choice = 0;
// 计算机随机数 1, 2, 3:
int random = 1 + (int) Math.random() * 3;
switch (choice) {
// TODO:
}
}
}
4.某项查询执行之后,n条结果,单页显示m条记录,第i页显示第几条到第几条? 5.根据月份,输出天数 6.机票的价格受季节旺季、淡季的影响,头等舱和经济舱价格也不同。假设机票原价5000元,请根据出行的月份和选择的仓位输出实际的机票价格。
旺季(4-10月)
头等舱
九折
经济舱
八折
淡季
头等舱
五折
经济舱
四折
控制台输出如下:
请输入您出行的月份:1-12
请选择头等舱(1)还是经济舱(2)?
2
您的机票价格为:3000.0
7.