20190722——变量、键盘输入、类型转换、运算符——购物清单

1、知识点:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.Java选择结构
1.1.关系运算符
可以通过关系运算符获取两个表达式之间的关系: >,<,>=,<=,,!=
如果是一个字符串比较是否相等不可以使用
必须通过equals来判断字符串是否相同
int num1 = 30;
int num2= 40;
boolean isEquals = num1 == num2;
System.out.println(“是否相等:” + isEquals);
String name1 =“赵丽丽”;
String name2 = “赵丽丽”;
System.out.println(“是否相等:” + name1==name2);
System.out.println(“是否相同:” + name1.equals(name2));

1.2.逻辑运算符
当存在多个表达式的时候,多个表达式之间存在的关系使用逻辑运算符体现
&& 并且 ||或者 !非
&&当两个或两以上的表达式每一个的表达式结果都为true则整个表达式结果才为true ,只要存在任意一个表达式为false 则整个表达式的结果为false
//如果语文和数学的成绩都超过95才能奖励否则没有奖励

||或多个表达式中,只要存在一个表达式的结果为true,则可以断定整个表达式都为true,如果所有的表达式结果都是flase则整体flase
//如果语文数学的考试成绩有任何一科成绩100分也奖励

!非 除了某一个条件之外,剩下的都可以

//整体的奖励条件为:语文和数学的成绩都超过95分或语文数学的考试成绩有任何一科成绩100分都奖励
//多个判断的条件
System.out.println(“请输入一个语文成绩”);
int ywScore = input.nextInt();
System.out.println(“请输入一个数学成绩”);
int sxScore = input.nextInt();

	if((ywScore>95 && sxScore>95) || ywScore==100 ||sxScore==100){
		System.out.println("奖励");
	}else{
		System.out.println("不奖励");
	}

1.3.选择结构的分类
1.3.1.if结构
语法 if(判断条件){执行代码块;} 如果判断条件为真才会执行:代码块,否则不执行,如果执行代码块中只存在一个语句则{}可以省略
Scanner input = new Scanner(System.in);
System.out.println(“请输入考试成绩”);
int score = input.nextInt();
//if(判断条件){执行代码块;} 如果执行代码块中只存在一个语句则{}可以省略
if(score> 95 ){
System.out.println(“去吃一顿必胜客”);
}

1.3.2.If(判断条件){代码块A;}else{代码块B;}结构
如果判断条件为真则执行代码A,如果判断条件为假则执行代码块B
//如果考试成绩大于95分,则继续奖励100元否则抄写试卷2遍
if(score >95){
System.out.println(“奖励100元”);
}else{
System.out.println(“抄写试卷2遍”);
}

1.4.多路选择结构
1.4.1.Switch()结构
switch结构:一般用于多个定值判断
Switch(表达式){ case 值1: 代码A ; break; case 值2:代码B; break; default: 默认代码3 ;}
如果表达式的结果的值等于 值1,则执行代码A,依次类推,如果表达式的结果不等于任何一个case 的值,则寻找default执行默认代码
switch(weekday){
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;
       /*注释了
	default:
		System.out.println("无此日子");
             break;
       */
	case "星期日":
		System.out.println("来一份花生米");
		break;						
	default:
		System.out.println("无此日子");
	}

注意点:
1:default 可以出现在switch结构中的任意地方,如果default不是最后一段代码,需要在default结束之后增加break语句
2:switch的判断语句可以判断的数据类型为:String,int,char,byte,enum(枚举)
3:每个case 后都需要有break ,如果没有break 在执行case 的时候不会停止,会一致执行下面所有的case 语句,直到遇到break未知
4:switch只能进行等值判断不能进行范围判断
1.4.2.多重if
If(表达式一){代码A}else if(表达式2)(代码块B;)else{代码块3;}
多个if 组成的结构成为多重if,在多重if中如果任意一个表达式判断条件为真,则不会进行其余表达式的验证,一般来说多重if用于实现范围判断
System.out.println(“请输入考试成绩”);
int score = input.nextInt();
//使用多重if判断
if(score> 90 ){
System.out.println(“奖励100”);
}else if(score>85 ){
System.out.println(“奖励50”);
}else if(score>80){
System.out.println(“奖励30”);
}else{
System.out.println(“本次没有奖励”);
}
注意点:在多重if的判断语句中,多个表达式的顺序不能调换位置,需要把最小范围的条件放在多重if的最上面(除非条件的判断是一个闭合范围100< sss >90)

1.5.嵌套选择结构
在任何if,ifelse ,switch,多重if中,的任何代码块中嵌入另一个选择结构,这种情况就属于嵌套IF
语法:
If(){
Switch(){
}
}else{
If(){
}
}
注意:在嵌套选择结构中,尤其需要注意代码的缩进,要分明的体现代码的层次
Int num1 = 20, num2 = 30,num3=10;
If(num1>20)
If(num1>30)
num3 = 50;
Else
num3 = 60;

Num3 执行完代码之后应该是多少num3 10

公园门票的问题:
旺季(5-10月)门票100元,淡季(除了旺季剩下的)门票8折,小孩免费<小于6岁>,学生半价<2岁到21岁>,老人不要钱<大于60岁>,编写程序,根据月份和年龄,判断应该消费多少钱购买门票

//使用嵌套判断,首先判断淡旺季的问题,然后在淡旺季中判断年龄
System.out.println(“请输入月份”);
int month = input.nextInt();
System.out.println(“请输入年龄”);
int age = input.nextInt();

	//判断淡季和旺季
	int ticket = 100;
	if(month>=5 && month<=10){
		//判断年龄
		if(age<=6){
			System.out.println("儿童免费");
		}else if(age<=21){
			System.out.println("旺季,学生变价:"+ ticket*0.5);
		}else if(age>=60){
			System.out.println("老人免费");
		}else{
			System.out.println("旺季普通门票:"+ ticket);
		}
		
	}else if(!(month>=5 && month<=10))
	{
		//判断年龄
		if(age<=6){
			System.out.println("儿童免费");
		}else if(age<=21){
			System.out.println("淡季,学生变价:"+ ticket*0.5*0.8);
		}else if(age>=60){
			System.out.println("老人免费");
		}else{
			System.out.println("淡季普通门票:"+ ticket*0.8);
		}
	}

根据输入的年份和月份,输出该月一共有多少天
//一三五七八十腊31日永不差,2月平年28闰年29,
//闰年的判断条件:能被4整除,不能被100整除或者能被400整除

	System.out.println("输入年份");
	int year = input.nextInt();
	System.out.println("输入月份");
	int month = input.nextInt();
	int days =0;
	boolean isRright = true;  //用于标识月份输入是否正确,默认正确
	//使用定值判断判断月份 
	switch(month){
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:
		days=31;
		break;
	case 2:
		if((year % 4 ==0 && year%100==0) || year%400==0)
			days = 29;
		else
			days=28;
		break;
	case 4:
	case 6:
	case 9:
	case 11:
		days = 30;
		break;
	default:	
		isRright = false;  //月份输入错误
	}
	
	//判断是否输入了正确的信息
	if(isRright == true)
		System.out.println(year+"年"+month+"月"+"一共有:"+days+"天");
	else
		System.out.println(year+"年没有"+month+"月");
	
	System.out.println("程序结束");

2、小练习-购物清单-变量的使用
import java.util.Scanner;

/**

  • @author 作者 :xxxxx

  • @date 创建时间:2019年7月22日 上午10:07:10

  • @version 1.0
    /
    public class ShopMenu {
    public static void main(String[] args) {
    //利用变量的输入输出,和计算实现一个购物小票的功能
    /
    *
    * 商品名称 单价 数量 小计
    * 苹果电脑 22 2 44
    * 方便面 2.5 5 12.5
    * 一共消费:56.5
    * 本次几分:18分
    * 缴费:60
    * 找零:3.5
    */

      //分析:需要输入商品的信息
      //定义一些相关的变量,然后输入相关信息,计算相关的数据,显示相关结果
      
      Scanner input = new Scanner(System.in);
      
      //1定义相关变量
      String prodName1;//商品名称
      String prodName2;
      double prodPrice1;//商品价格
      double prodPrice2;
      int prodNum1;//商品数量
      int prodNum2;
      double prodTotal1;//商品小计
      double prodTotal2;
      double prodSum;//商品总价
      int score;//积分
      int pay;//缴费
      double check;//找零
      
      //2开始业务
      System.out.println("请输入第一件商品名称");
      prodName1 = input.nextLine();
      System.out.println("请输入第二件商品名称");
      prodName2 = input.nextLine();
      System.out.println("请输入第一件商品价格");
      prodPrice1 = input.nextDouble();
      System.out.println("请输入第二件商品价格");
      prodPrice2 = input.nextDouble();
      System.out.println("请输入第一件商品数量");
      prodNum1 = input.nextInt();
      System.out.println("请输入第二件商品数量");
      prodNum2 = input.nextInt();
      
      //3计算业务数据(隐式数据类型转换)
      prodTotal1 = prodPrice1 * prodNum1;
      prodTotal2 = prodPrice2 * prodNum2;
      
      //计算总价格
      prodSum = prodTotal1 + prodTotal2;
      
      //计算总积分
      score = (int)(prodSum / 3);
      
      //4输出结果
      System.out.println("商品名称\t单价\t数量\t小计");
      System.out.println(prodName1+"\t"+prodPrice1+"\t"+prodNum1+"\t"+prodTotal1);
      System.out.println(prodName2+"\t"+prodPrice2+"\t"+prodNum2+"\t"+prodTotal2);
      System.out.println("一共消费:"+prodSum);
      System.out.println("本次积分:"+score);
      System.out.println("实际缴费");
      pay = input.nextInt();
      check = pay - prodSum;
      System.out.println("找零为:"+check);
      System.out.println("程序结束");
    

    }
    }

运行截图:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值