Java基础复习—选择结构

基本if/if-else条件(选择)结构

当代码块只有一个语句时,可以省略大括号

//if 条件结构
if(条件1)
    代码块;

//if-else 选择结构
if(条件1)
    代码块1;
else
    代码块2;
多重if条件结构

​ 在解决需要判断的条件是连续区间时有很大优势

if(条件1)
    代码块1;
else if(条件2)
    代码块2;
else if(条件3)
    代码块3;
else
    代码块4;
嵌套if条件结构

在if里再嵌入if选择结构

if(条件1){
    if(条件2){
		代码块1;
    }else {
        代码块2;
    }
}else
    代码块3;

例如,如下代码:


/*嵌套if条件结构的使用*/
package day01;

import java.util.Scanner;

public class Text01{
	public static void main(String[] args) {
		Scanner sca = new Scanner(System.in);
		
		System.out.println("请输入成绩:");
		int in = sca.nextInt();
		
		System.out.println("请输入性别:");
		String st = sca.next();
		
        //.equals String方法.判断两个字符串(string)的内容是否相等,若相同则返回true 否则为false
		if(in>10) {
			if(st.equals("男")){
				System.out.println("进入男子组");
			}else if(st.equals("女"))
				System.out.println("进入女子组");
		}else 
			System.out.println("淘汰");
	}
}
Switch条件选择结构

​ Switch 语句由一个控制表达式和多个case标签组成;且控制表达式的数据类型只能使byte,short,char,int 以及 String 类型和枚举类型

​ Switch 语句往往需要在 case 标签后紧跟一个代码块,case 标签作为代码块的标识。

switch(表达式){
     case 常量1:
         代码块1;
         break;
     case 常量2:
         代码块2;
         break;
     case 常量3:
         代码块3;
         break;
     default:
         代码块4;
}

Switch 语句的语法格式解释

​ 这种分支语句的执行是先对表达式求值,然后依次匹配 case 后的常量,遇到相同的的匹配值则执行对应的代码块。如果都不匹配,则执行 default 后的代码块

​ 注意:Swicth 语句中的 break 非常重要,如果注释掉了 break,则会应引入一个陷阱。

​ 陷阱:Switch 语句先求出表达式的值,然后和 case 标签后的值进行比较,一旦遇到相等的值,程序就会开始执行当前这个代码块和后面标签的代码,不用再判断后面case,default 标签的条件是否匹配,除非遇到 break.

【案例】出租车计费程序设计分析

​ 程序中需要用到当前系统时间的小时数。可以用以下方法得到小时数(数据类型为int):

Calendar.getInstance( ).get(Calendar.HOUR_OF_DAY)

​ Calendar 是 JDK 提供的类,代表抽象的日历类型,它定义在 java.util 程序包下,使用时先导入

其中:

get(Calendar.HOUR_OF_DAY) 获得当天的小时数

get(Calendar.DAY_OF_YEAR) 获得当年的第几天

get(Calendar.DAY_OF_MONTH) 获得这个月的第几天

get(Calendar.DAY_OF_WEEK) 获得这个星期的第几天

Calendar 的使用方法:

Calender cal = Calender.getInstance(); //获取当前系统的日历

同时,还有 set 设置时间。具体使用方法请查看 java.util

package day01;

import java.util.Calendar;
import java.util.Scanner;

public class TaxiCharge {
	public static void main(String[] args) {
		
		double startPriceInDay = 10.00;//白天起价
		double startPriceInNight = 12.00;//夜间起价
		double perPriceInDay = 2.0;//白天每千米价格
		double perPriceInNight = 2.3;//晚上每千米价格
		
		double basePrice = 0.0;//基本里程费
		double emptyBackPrice = 0.0;//返回空驶价格
		
		
		//获取当前系统时间的小时数
		int nowTime = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
		
		Scanner sca = new Scanner(System.in);
		
		System.out.println("请输入行驶千米数:");
		//输入提示行驶千米数
		double len = sca.nextDouble();
		
		System.out.println("请输入等待时间(单位:s):");
		//输入提示等待秒数
		int wait = sca.nextInt();
		
		//嵌套if选择结构
		if(nowTime>7 && nowTime<23) {	//白天
			basePrice+=startPriceInDay;
			if(len>3) {
				basePrice+=(int)(len-3+1)*perPriceInDay;
			}
		}else { 	//夜间
			basePrice+=startPriceInNight;
			if(len>3) {
				basePrice+=(int)(len-3+1)*perPriceInNight;
			}
		}
		
		if(len>15) {
			emptyBackPrice+=(int)(len-15.0+1)*1;
		}
		
		//等待价
		double waitPrice =+ wait/60*2;
		
		//总价格
		double totalPrice = (basePrice+emptyBackPrice+waitPrice);//总价
		
		
		System.out.println("出租车应收款如下:");
		System.out.println("基本里程费:"+basePrice);
		System.out.println("空驶费:"+emptyBackPrice);
		System.out.println("等待费:"+waitPrice);
		System.out.println("总计:"+totalPrice);
		
	}
}

+= 和 =+ 的区别

​ a += b : a=a+b

​ a = +b : a=b //赋值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值