Java学习笔记day2--分支结构
/*分支结构if-else switch case if-else:条件判断结构 三种结构: 1.if(条件表达式){ } 2.if(条件表达式){ }else{ } 3.if(条件表达式){ }else if(条件表达式){ }else if(条件表达式){ }…… else{ } //举例if-else int heartBeats = 79; if(heartBeats<60 || heartBeats>100) { System.out.println("需要做进一步检查。"); //举例2 } int age=23; if(age<18) { System.out.println("你还可以多看看动画片"); }else{ System.out.println("你可以看成人de电影了"); } // 举例3 多选一 int myAge=22; if(myAge<=0) System.out.println("请输入正确的年龄"); else if(myAge<18) System.out.println("青少年时期"); else if(myAge<35) System.out.println("青壮年时期"); else if(myAge<60) System.out.println("中年时期"); else System.out.println("退休快乐"); //练习********************************************************************(复习题) //1.求下列程序输出结果 boolean x=true; boolean y=false; short z=40; if((z++==40)&&(y=true)) {//true&&true;z=41 z++; //z=42 } if((x=false)||(++z==43)){//false||true;z=43 z++; //z=44 } System.out.println("z="+z);//z=44 //2.定义三个int型变量并赋值,使用三元运算符或if—else获取这三个数中最大数 int a0,a1,a2; a0=10; a1=12; a2=78; int max=a0; //if-else if(a0>=a1) { if(a0>=a2) { System.out.println("最大值是:"+max); } else { max=a2; System.out.println("最大值是:"+max); } }else { max=a1; if(a1>=a2) System.out.println("最大值是:"+max); else { max=a2; System.out.println("最大值是:"+max); } } //三元运算符 int max1=(a0>=a1)?a0:a1; int max2=(max1>=a2)?max1:a2; System.out.println("最大值是:"+max2); //3.编写程序,声明2个double变量并赋值,判断第一个数大于10.0且第二个数小于20.0时,打印两数之和,否则,打印两个数乘积 double d1=19.2; double d2=34.1; if((d1>10.0)&&(d2<20.0)) System.out.println(d1+d2); else System.out.println(d1*d2); //4.交换两个变量值的代码实现 int b1=10; int b2=24; int temp=b1; b1=b2; b2=temp; System.out.println("b1="+b1+",b2="+b2); //练习结束************************************************************************************** /* 如何从键盘获取不同类型的变量?-->使用scanner类 具体实现步骤: 1.导包:import java,utilScanner; 2.Scanner的实例化; 3.调用Scanner类的相关方法,以获取指定类型的变量。 注意:需要根据相应的方法输入指定类型的值,如果输入的类型和要求的类型不匹配,将会报异常InputMisNatchException 导致程序终止。 */ //Scanner的实例化 Scanner scan=new Scanner(System.in); //调用Scanner类的相关方法整数、字符串、浮点数、布尔型、字符型++++++++++++++++++++++++++++++++ System.out.println("请输入一个数字"); int num=scan.nextInt(); System.out.println(num); System.out.println("请输入你的姓名:"); String name=scan.next(); System.out.println("你的名字是:"+name); System.out.println("请输入你的芳龄:"); int ages=scan.nextInt(); System.out.println("你的名字是:"+name); System.out.println("请输入你的体重:"); double weight=scan.nextDouble(); System.out.println("你的体重是:"+weight); System.out.println("你是否相中我了:"); boolean isLove=scan.nextBoolean(); System.out.println(isLove); //对于char型的获取:Scanner没有提供相关方法,只能获取一个字符串 System.out.println("请输入您的性别:"); String gender=scan.next(); char genderChar=gender.charAt(0);//获取gender字符串的第一个字符 System.out.println(genderChar); //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ } /*练习题1 岳小胖参加Java考试,他和父亲岳不群达成承诺: 如果:成绩为一百分,奖励一辆BMW; 成绩为(80,99],奖励一台iPhone xs max; 当成绩为[60,80],奖励一个iPad; 其他时,什么奖励也没有; 请从键盘上输入岳小胖的期末成绩,并加以判断 */ Scanner scan=new Scanner(System.in); System.out.println("请输入岳小胖的期末考试成绩:(0~100)"); int score=scan.nextInt(); //如下if-else结构不可改变顺序,否则编译能通过但是无法正确运行 if(score<60) System.out.println("什么奖励也没有。"); else if(score<=80) System.out.println("奖励一个iPad。"); else if(score<=99) System.out.println("奖励一台iPhone xs max。"); else System.out.println("奖励一台BMW"); //针对条件表达式,如果多个条件表达式之间是互斥关系(即没有交集),则哪个判断和执行语句声明在前面还是后面都无所谓,不影响判断结果; //当多个条件判断语句之间有交集时,需要根据实际情况,考虑清楚将哪个结构放在前面。 /*练习题2 编写程序,由键盘输入三个整数分别存入变量num1、num2、num3 对它们进行排序(使用if-else),并且从小到大输出。 */ System.out.println("请输入三个整数:"); int num1=scan.nextInt(); int num2=scan.nextInt(); int num3=scan.nextInt(); //我的想法是冒泡排序,借助中间变量temp实现num1、num2、num3之间的交换,使得num1、num2、num3变成从小到大的序列 int temp=num1; if(num1<num2) { temp=num2; if(num2<num3) { System.out.println(num1+","+num2+","+num3); }else { num2=num3; num3=temp; if(num1<num2) System.out.println(num1+","+num2+","+num3); else { temp=num1; num1=num2; num2=temp; System.out.println(num1+","+num2+","+num3); } } }else { num1=num2; num2=temp; if(num2<num3) System.out.println(num1+","+num2+","+num3); else { temp=num2; num2=num3; num3=temp; if(num1<num2) System.out.println(num1+","+num2+","+num3); else { temp=num1; num1=num2; num2=temp; System.out.println(num1+","+num2+","+num3); } } } //笔试题*************************************************************************** //1.对下列代码,若有输出,指出输出结果 int x=4; int y=1; if(x>2) { if(y>2) //无大括号,以下一行为if内执行语句(笔试题喜欢删去大括号误导人) System.out.println(x+y); System.out.println("atguigu");//这一句是x>2的执行语句, }else //就近配对原则 System.out.println("x is"+x); //程序输出:atguigu //2.如果改写成if(b=false)能编译通过吗?如果能,结果是什么? boolean b=true; if(b==false) //如果改成b=false,这句不执行 System.out.println("a"); else if(b) //b==false,所以这句也不执行 System.out.println("b"); else if(!b) System.out.println("c"); //!b==true,执行,输出c else System.out.println("d"); /* 3.我家狗五岁了,5岁的狗相当于人类多大呢?其实,狗狗前两年每一年相当于人类的10.5年,之后每增加一年就增加四岁。 编写一个程序,获取用户输入的狗的年龄,通过此程序显示其相当于人类的年龄。 如果用户输入负数,请显示一个提示信息 */ System.out.println("请输入你家狗狗的年龄:"); int dogAge=scan.nextInt(); if(dogAge<0) System.out.println("你家狗狗还没出生呢"); else { if(dogAge<=2) { System.out.println("你家狗狗的年龄相当于人类的"+dogAge*10.5+"岁"); }else { System.out.println("你家狗狗的年龄相当于人类的"+(2*10.5+4*(dogAge-2))+"岁"); } } /* 4.假设你想开发一个玩彩票的游戏,程序随机产生一个两位数的彩票,提示用户输入一个两位数,按照以下规则判断用户能否获奖: 1)如果用户输入匹配彩票的实际顺序,奖励10000美元; 2)如果用户输入数字匹配但是顺序不一样,奖励3000美元; 3)如果用户输入的一个数字满足顺序情况下匹配彩票的一个数,奖励1000美元; 4)如果用户输入一个数满足非顺序下匹配彩票的一个数,奖励600美元; 5)用户输入没有匹配任何一个数字,彩票作废。 */ int lotteryTicket; lotteryTicket=(int)(Math.random()*90+10);//random产生一个double类型的数,值域为[0.0,1.0) int lotteryTicketG=lotteryTicket%10; int lotteryTicketS=lotteryTicket/10; System.out.println("请输入一个两位数:"); int userNum=scan.nextInt(); int userNumG=userNum%10; int userNumS=userNum/10; if(userNumG==lotteryTicketG && userNumS==lotteryTicketS) { System.out.println("恭喜你,获得10000美元的奖励!"); } else if(userNumG==lotteryTicketG || userNumS==lotteryTicketS) { System.out.println("恭喜你,获得1000美元的奖励!"); } else if(userNumG==lotteryTicketS && userNumS==lotteryTicketG) { System.out.println("恭喜你,获得3000美元的奖励!"); } else if(userNumG==lotteryTicketS || userNumS==lotteryTicketG) { System.out.println("恭喜你,获得600美元的奖励!"); }else System.out.println("很遗憾,你没有获奖!"); System.out.println("彩票数字是:"+lotteryTicket+",你的输入是:"+userNum); /* 练习5:大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件: 高:180cm以上;富:财富一千万以上;帅:是。 如果三个条件同时满足,则:“我一定要嫁给他!!!” 如果三个条件有为真的情况,则;“嫁吧,比上不足,比下有余。” 如果三个条件都不满足,则:“不嫁!” */ System.out.println("请输入你的身高:cm"); double height=scan.nextDouble(); System.out.println("请输入你的财富总值:元"); int money=scan.nextInt(); System.out.println("你长得帅不帅:(帅->true,不帅->false)"); boolean face=scan.nextBoolean(); if(height>=180 && money>=10000000 && face==true ) { System.out.println("我一定要嫁给他!!!"); }else if (height>=180 || money>=10000000 || face==true) { System.out.println("嫁吧,比上不足,比下有余。"); }else System.out.println("不嫁!"); //注意条件表达式直接的包含关系。这是if-else语句的顺序的关键 //练习结束*********************************************************************************