if elseif else写法
public class Demo1 { public static void main(String[] args) { int score=88; if (score>=90){ System.out.println("优秀"); }else if(score>=80){ System.out.println("良好"); } else if (score>=70) { System.out.println("中等"); } else if (score>=60) { System.out.println("及格"); }else { System.out.println("差"); } } }
if elseif...else构成的一个分支,是多选一的结构,是从上到下逐一判断,一旦为真,就不会往下判断,所以不能打乱顺
else if可以有多个
与或非
与:&& 或:|| 非:!
幸运抽奖
抽奖规则:会员号的百位数字等于产生的随机数字即为幸运会员
实现思路:1.产生随机数字
2.从控制台接收一位4位会员号
3.分解获得百位
4.判断是否为幸运会员
产生随机数字(0~9)的方法:int random=(int)(Math.random()*10);Math.random()只能产生【0.0~1.0)的小数
public class Demo1 { public static void main(String[] args) { System.out.println("幸运抽奖"); System.out.println("请输入四位会员号"); Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); int bai=n/100%10; int luck=(int)(Math.random()*10); /* Math.random()产生一个[0.0,1.0)的小数,1.0取不到 那么要产生[1.0,10.0)的数则要放大十倍,再进行强转为int则[0,9]; */ System.out.println("幸运数字是:"+luck); if(bai==luck) System.out.println("为幸运会员"); else System.out.println("谢谢惠顾"); } }
字符串的比较
public class Demo1 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入是否为会员"); /* scanner不能接受字符,只能接受字符串 */ String yesno=scanner.next(); /* 字符跟别的比较是用==,而==是用基本数据类型比较(byte,short,int,long,float,double,char,boolen); 而String是一种类,不是基本数据类型,所以不能用==比较,用equals方法来比较 字符串的比较,采用字符串的equals()方法 */ if(yesno.equals("y"))//一定要注意字符串比较用“ ” { System.out.println("是会员"); }else System.out.println("不是会员"); } }
嵌套if
题目:普通顾客购物满100打九折,会员购物打八折,会员购物满200打7.5折
思路:1.从控制台输入是否为会员
2.控制台输入金额
3.判断是否为会员的前提下根据金额大小判断打折多少
public class Demo1 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入是否为会员"); String yesno=scanner.next(); System.out.println("请输入购物金额:"); double money= scanner.nextDouble(); if(yesno.equals("y"))//一定要注意字符串比较用“ ” { if(money>=200) money=money*0.75; else money=money*0.8; }else { if(money>=100) money=money*0.9; else money=money; } System.out.println("最后金额:"+money); } }
if里面再嵌套一个if else
switch结构
例题:韩燕参加计算机编程大赛
如果获得第一名,将参加麻省理工大学组织的一个月夏令营
如果获得第二名,将奖励笔记本电脑一部
如果获得第三名,将奖励移动硬盘一个
否则,不给予任何奖励
解决办法:使用多重if选择结构实现,缺点:结构复杂,啰嗦
使用switch选择结构解决 特点:条件为等值判断
思路:1.先控制台输入他所获得的名次
2.根据名次判断他所应得的奖励
switch支持数据类型
switch()里面可以使用哪几种数据类型 1.byte short int char String enum(枚举) 2.long float double 不支持
switch透传
public class Main { public static void main(String[] args) { String riqi="星期一"; switch(riqi){ case "星期一"://这里星期一和星期三是同一件事情,所以可以直接透传 case "星期三": System.out.println("画画"); break; } } }
例题商品换购
是否参加换购活动:
1.满50,加两元换购可乐一瓶
2.满100,加3元换购500ml可乐一瓶
3.满100,加10元换购5公斤面粉
4.满200,加10元换购一个锅
5.满200,加20换购爽肤水一瓶
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入消费金额"); double money= scanner.nextDouble(); System.out.println("请输入是否换购"); System.out.println("0.不换"); System.out.println("1.满50,加两元换购可乐一瓶"); System.out.println("2.满100,加3元换购500ml可乐一瓶"); System.out.println("3.满100,加10元换购5公斤面粉"); System.out.println("4.满200,加10元换购一个锅"); System.out.println("5.满200,加20换购爽肤水一瓶"); System.out.println("请选择"); int i= scanner.nextInt(); String good="不换购";//当要换一个变量的名字时,全选中变量名,右键Refactor下面rename switch(i){ case 0: { money=money; good=good; } break; case 1: { if(money>=50) { money=money+2; good="可乐"; } else System.out.println("不符合换购条件"); } break; case 2: { if(money>=100) { money=money+3; good="500ml可乐"; } else System.out.println("不符合换购条件"); } break; case 3: { if(money>=100) { money=money+10; good="5公斤面粉"; } else System.out.println("不符合换购条件"); } break; case 4: { if(money>=200) { money=money+10; good="锅"; } else System.out.println("不符合换购条件"); } break; case 5: { if(money>=200) { money=money+20; good="爽肤水"; } else System.out.println("不符合换购条件"); } break; } System.out.println("换购物品为:"+good); System.out.println("总消费金额:"+money); } }