笔记Day04

目录​​​​​​​

1、条件运算符

2、运算符的优先级

3、条件运算符练习

4、选择结构

5、if选择分支结构

注:equals

6、switch选择结构

7、练习

1、条件运算符

(三目运算符/三元运算符)

(1)语法结构:

条件?表达式1:表达式2;

执行规律:

条件为true,执行表达式1

条件为false,执行表达式2

(2)条件运算符的嵌套:

语法结构:

条件?(条件?表达式1:表达式2):(条件?表达式1:表达式2);

2、运算符的优先级

单目运算符包括!   ++  --,优先级别高

优先级别最低的是赋值运算符

可以通过()控制表达式的运算顺序,()优先级最高

从右向左结合性的只有赋值运算符、三目运算符和单目运算符

算术运算符 > 关系运算符 > 逻辑运算符

3、条件运算符练习

练习1:

public class Demo01 {

public static void main(String[] args) {

// 使用条件运算符获得两个数中的最大值

int num1 = 100;

int num2 = 101;

int max =num1>num2?num1:num2;

System.out.println("最大值:"+max);

//使用键盘录入两个整数,然后通过条件运算符进行比较,输出输入的两个值里面的最小值

//创建Scanner类对象

Scanner  input =new Scanner(System.in);

System.out.println("请输入第一个整数:");

int firstNum=input.nextInt();

System.out.println("请输入第二个整数:");

int secondNum=input.nextInt();

int min =firstNum>secondNum?secondNum:firstNum;

System.out.println("你输入的两个数中最小的数是:"+min);

}

}

练习二:根据分解后的数字之和,判断用户是否中奖。如果数字之和大于20,则中奖

public class Demo02 {

public static void main(String[] args) {

// 根据分解后的数字之和,判断用户是否中奖。

// 如果数字之和大于20,则中奖

Scanner input = new Scanner(System.in);

System.out.println("请输入4位会员卡号:");

int cardId = input.nextInt();

System.out.println("你的会员卡号是:" + cardId);

int geWei = cardId % 10;

int shiWei = cardId / 10 % 10;

int baiWei = cardId / 100 % 10;

int qianWei = cardId / 1000;

System.out.println("千位:" + qianWei + ",百位:" + baiWei + ",十位:" + shiWei

+ ",个位:" + geWei);

int sum = geWei + shiWei + baiWei + qianWei;

System.out.println("各个位数上的数字之和:" + sum);

// 如果数字之和大于20,则中奖

String result = sum > 20 ? "恭喜你,中奖了" : "很遗憾,没能中奖";

System.out.println(result);

}

}

4、选择结构

if选择分支结构

switch分支结构

5、if选择分支结构

(1)单分支if选择结构:

语法结构:

if(条件){

//代码块

}

执行规律:

如果条件为true,执行{}中的代码块,执行完后,继续往下执行{}后面的代码;

如果条件为false,执行{}后面的代码;

注意:条件不管多么简单还是多么复杂,都只能为布尔值

(2)双分支if选择结构:if-else选择结构

语法结构:

   if(条件){

  //代码块1;

   }else{

  //代码块2;

   }

执行规律:

如果条件为true,执行代码块1,执行完之后,执行if-else结构后面的代码

如果条件为false,执行else{}里面的代码块2,执行完之后,执行if-else结构后面的代码

注意:条件为布尔值;

如果代码块1只有一条语句,代码块1所在的{}可以省略,但不建议。

(3)多重if选择结构:if-else-if选择结构

语法结构:

   if(条件1){

   //代码块1

   }else if(条件2){

   //代码块2

   }else if(条件3){

   //代码块3

   }....

   }else{

   //代码块n

   }

执行规律:

  • 先判断条件1,如果条件1为true,执行代码块1,执行完之后结束整个if-else-if结构,执行该结构后面的代码
  • 如果条件1为false,继续往下判断条件2,如果条件2为true, 执行代码块2,执行完之后结束整个if-else-if结构,执行该结构后面的代码
  • 如果条件2为false,继续往下判断条件3,如果条件3为true,执行代码块3,执行完之后结束整个if-else-if结构,执行该结构后面的代码
  • ......
  • 如果所有的条件都为false,执行else里面的代码块n

注意:

1)条件为布尔值

2)else if可以有1个、2个、多个

3)else也可以省略,如果所有的条件不成立,也没有else,那么整个if-else-if结构不执行

4)多重if选择结构中各个条件的顺序不可以任意排列,要求从上往下由严格到宽松。

(4)嵌套if选择结构:在一个if选择结构中存在另外一个if选择结构

语法结构:

   if(条件1){

   //代码块1

   if(条件2){

   //代码块2

   }else{

   //代码块3

   }

   }else{

   //代码块4

   }

执行规律:

判断条件1,条件1为true,执行代码块1,进一步判断条件2,条件为true,执行代码块2,条件2为false,执行代码块3,执行完之后,结束整个所有的if结构

条件1为发了,执行下面else里的代码块4

练习1:

public class Demo01 {

public static void main(String[] args) {

//张浩Java成绩大于90分,老师奖励他iPhone6s ,该怎么做呢?

//声明一个变量javaScore用来存储张浩的Java成绩

double javaScore = 9;

//根据张浩的java成绩判断他能不能拿到奖励

if(javaScore>=90){

System.out.println("奖励一部iPhone6S");

}

System.out.println("继续努力");

}

}

练习2:

public class Demo04 {

public static void main(String[] args) {

/*

 * 如果张浩Java考试成绩大于等于90分,老师就奖励他一个iPhone6s

 * 否则老师就罚他蹲马步

 */

double javaScore = 9;

if(javaScore>=90){

System.out.println("奖励iPhone6s");

}else{

System.out.println("蹲马步");

}

System.out.println("继续努力");

}

}

练习3:

public class Demo05 {

public static void main(String[] args) {

/*

 * 对学员的考试成绩评测

 * 成绩>=80 :良好

 * 成绩>=60 :中等

 * 成绩<60   :差

 */

double javaScore = 95;

if(javaScore>=80){

System.out.println("良好");

}else if(javaScore>=60){

System.out.println("中等");

}else{

System.out.println("差");

}

System.out.println("继续努力");

}

}

练习4:

import java.util.Scanner;

public class Demo06 {

public static void main(String[] args) {

/*

 * 学校举行运动会,百米赛跑跑入10 秒内的学生有资格进决赛,

 * 根据性别分别进入男子组和女子组

 */

//创建Scanner类对象

Scanner input = new Scanner(System.in);

System.out.println("请输入你的百米赛跑成绩:");

double runScore =input.nextDouble();

//根据成绩判断能不能进入决赛

if(runScore<10){

System.out.println("恭喜你,进入百米赛跑决赛");

//根据性别判断进入男子组还是女子组

//获取性别

System.out.println("请输入你的性别:");

String sex =input.next();

//boolean result =sex.equals("男");

//根据性别判断决定进入男子组还是女子组

if(sex.equals("男")){

System.out.println("进入男子组");

}else if(sex.equals("女")){

System.out.println("进入女子组");

}else{

System.out.println("对不起,暂时还没有针对你的性别开展比赛");

}

}else{

System.out.println("很遗憾,不能进入百米赛跑决赛");

}

}

}

注:equals

比较字符串是否相等,返回boolean类型数据

eg:比较字符串1和字符串2

String str = “字符串1”;

boolean result = str.equal(“字符串2”);

6、switch选择结构

(1)语法结构

switch (表达式) {

case 常量 1:

语句;

break;

case 常量 2:

语句;

break;

default:

语句;

}

(2)使用说明:

1)根据switch中表达式的值,依次匹配case中的常量,匹配成功,进入相应的case结构中,调用其中的执行语句;当执行完语句后,程序仍然向下执行其他case结构中的执行语句,直到遇到break关键字或者switch-case结构末尾才结束。

2)break关键字可以使用在switch-case结构中,程序执行到该关键字则跳出switch-case结构。

3)switch结构中的表达式只能是下面的六种数据结构之一:

byte、short 、int、枚举类型、String类型

4)case后只能声明常量,不能声明范围。

 错误示范:

int age = 10;

switch(age){

case age>18:

System.out.println(“成年了”);

break;

case age<18:

System.out.println(“未成年”);

}

5)break关键字根据实际使用情况来判断是否需要

6)default相当于else,是可选的,位置可以灵活,一般放在末尾

7)如果switch-case结构中的多个case执行语句相同,则可以进行合并。示例:

int score = 78;

switch(score/10){

case 0:

case 1:

case 2:

case 3:

case 4:

case 5:

       System.out.println(“不及格”);

          break;

case 6:

case 7:

case 8:

case 9:

case 10:

System.out.println(“成年了”);

break;

}

8)键盘分别输入年月日,判断这一天是当年第几天

判断一年是否为闰年:可以被4整除,不能被100整除;可以被400整除

public static void main(String[] args){

     Scanner scan = new Scanner(System.in);

     System.out.println(“请输入year:”);

     int year = scan.nextInt();

     System.out.println(“请输入month:”);

     int month = scan.nextInt();

     System.out.println(“请输入day:”);

     int day = scan.nextInt();

     int sumDay = 0;

     switch(month){

              case12:sumDay+=31;

              case11:sumDay+=30;

              case10:sumDay+=31;

              case9:sumDay+=30;

              case8:sumDay+=31;

              case7:sumDay+=31;

              case6:sumDay+=30;

              case5:sumDay+=30;

              case4:sumDay+=30;

              case3:sumDay+=31;

              case2:

if(year%4==0&&year%100!=0||year%400==0){

   sumDay+=29;

}else{

sumDay+=28;

}

              case1:sumDay+=day;

}

System.out.println(month+”月”+day+”日”+”是该年的第”+sumDay+”天”);

}

9)switch-case结构和if-else结构选择判断

a.凡是可以使用switch-case结构都能转换为if-else结构,反之不成立

b.当两种分支结构都能使用时,如果switch-case中case取值情况不多,有限选择switch-case结构,switch-case结构执行效率较高。

7、练习

01: 使用if选择结构判断一个整数,属于哪个范围:大于0;小于0;等于0

import java.util.Scanner;

public class exe01 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入一个整数:");

int num = sc.nextInt();

if(num>0){

System.out.println("大于0");

}

else if(num==0){

System.out.println("等于0");

}

else{

System.out.println("小于0");

}

}

}

02:使用if选择结构判断一个整数是偶数还是奇数。

import java.util.Scanner;

public class exe2 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入一个整数:");

int num = sc.nextInt();

if(num>=0){

  if(num/2==0){

  System.out.println("该数是偶数");

  }else{

  System.out.println("该数是奇数");

  }

}else{

System.out.println("负数没有奇偶性");

}

}

}

03:使用if选择结构对三个整数进行排序,输出时按照从小到大的顺序输出。

import java.util.Scanner;

public class exe3 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入第一个整数:");

int num1 = sc.nextInt();

System.out.println("请输入第二个整数:");

int num2 = sc.nextInt();

System.out.println("请输入第三个整数:");

int num3 = sc.nextInt();

//num1最大

if(num1>num2&&num1>num3&&num2>num3){

System.out.println("num1>num2>num3");

}

else if(num1>num2&&num1>num3&&num3>num2){

System.out.println("num1>num3>num2");

}

//num2最大

else if(num2>num1&&num2>num3&&num1>num3){

System.out.println("num2>num1>num3");

}

else if(num2>num1&&num2>num3&&num3>num1){

System.out.println("num2>num3>num1");

}

//num3最大

else if(num3>num1&&num3>num2&&num1>num2){

System.out.println("num3>num1>num2");

}

else if(num3>num1&&num3>num2&&num2>num1){

System.out.println("num3>num2>num1");

}

}

}

04:使用if选择结构判断一个三位的整数是否是水仙花数。

水仙花数的条件:三位数为abc,则满足:a3+b3+c3=abc

import java.util.Scanner;

public class exe4 {

public static void main(String[] args) {

//创建Scanner对象

Scanner sc = new Scanner(System.in);

System.out.println("输入一个三位数");

//键盘获取数据

int num = sc.nextInt();

//判断是否为四位数

if(num<100||num>999)

System.out.println("请输入三位数");

else

System.out.println("输入的三位数是:"+num);

int a = num%10;

System.out.println("个位数是:"+a);

int b = num/10%10;

System.out.println("个位数是:"+b);

int c = num/100;

System.out.println("个位数是:"+c);

if(a*a*a+b*b*b+c*c*c==a*b*c){

System.out.println(num+"是水仙数");

}else{

System.out.println(num+"不是水仙数");

}

}

05:使用if选择结构判断某一年份是否是闰年。

闰年的条件:

普通闰年:能被4整除但不能被100整除的年份为普通闰年。(如2004年就是闰年);

世纪闰年:能被400整除的为世纪闰年。(如2000年是世纪闰年);

import java.util.Scanner;

public class exe5 {

public static void main(String[] args) {

//创建Scanner对象

Scanner sc = new Scanner(System.in);

System.out.println("输入年份:");

//键盘获取数据

int nian = sc.nextInt();

if(nian%4==0){

if(nian%100!=0){

    System.out.println(nian+"是普通闰年");

}else{

System.out.println(nian+"是世纪闰年");

}

}else{

System.out.println(nian+"不是闰年");

}

}

}

06:使用if选择结构判断一个4位整数,统计出此整数里面包含多少个偶数,多少个奇数

import java.util.Scanner;

public class exe6 {

public static void main(String[] args) {

//创建Scanner对象

Scanner sc = new Scanner(System.in);

System.out.println("输入四位数");

//键盘获取数据

int num = sc.nextInt();

//判断是否为四位数

if(num<1000||num>9999){

System.out.println("请输入四位数");

}

else{

    System.out.println("四位数是:"+num);

}

int ouNum;

int jiNum;

//num 为偶数时,奇数个数为num/2;偶数个数为(num/2)+1

if(num%2==0){

ouNum = num/2+1;

System.out.println("偶数个数为"+ouNum);

jiNum = num/2;

System.out.println("奇数个数为"+jiNum);

}

//num 为奇数时,奇数偶数个数均为(num+1)/2

else{

ouNum = (num+1)/2;

System.out.println("偶数个数为"+ouNum);

jiNum =(num+1)/2;

System.out.println("奇数个数为"+jiNum);

}

}

}

07:开发一个程序,根据公式(身高-108)*2=体重,可以有10斤左右的浮动。来观察测试者体重是否合适。

import java.util.Scanner;

public class exe7 {

public static void main(String[] args) {

//创建Scanner对象

Scanner sc = new Scanner(System.in);

System.out.println("输入身高:");

   double height = sc.nextDouble();

   System.out.println("输入体重:");

   double weight1 = sc.nextDouble();

   System.out.println("身高为:"+height+"  实际体重为:"+weight1);

   double weight2 = (height-108)*2;

   System.out.println("标准体重为:"+weight2);

   if(weight1>=weight2-10&&weight1<=weight2+10){

   System.out.println("体重合适");

   }else{

   System.out.println("体重不合适");

   }

}

}

08: 判断此考试成绩为什么等级。

90-100之间为优秀

80-89之间为优良

70-79之间为良好,

60-69之间为及格

60分以下为不及格。

import java.util.Scanner;

public class exe8 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入分数:");

int score = sc.nextInt();

if(score>=90){

System.out.println("优秀");

}

else if(score>=80&&score<90){

System.out.println("优良");

}

else if(score>=70&&score<80){

System.out.println("良好");

}

else if(score>=60&&score<70){

System.out.println("及格");

}

else{

System.out.println("不及格");

}

}

}

09: 写一个程序,输出类似09:03:12的时间格式,需要判断输入的数字是否符合实际情况,比如小时数就不能大于24,如果大于24就提示输入错误;分钟数和秒数不能大于60,如果大于60就提示输入错误。

import java.util.Scanner;

public class exe9 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入小时:");

int hour = sc.nextInt();

System.out.println("请输入分钟:");

int minute = sc.nextInt();

System.out.println("请输入秒:");

int second = sc.nextInt();

if(hour>=24|minute>=60|second>=60){

System.out.println("输入错误!");

}

else if(hour>=10){

if(minute>=10){

if(second>=10){//hour>=10,minute>=10,second>=10

System.out.println(hour+":"+minute+":"+second);

}else{//hour>=10,minute>=10,second<10

System.out.println(hour+":"+minute+":0"+second);

}

}else{//minute<10

if(second>=10){//hour>=10,minute<10,second>=10

System.out.println(hour+":0"+minute+":"+second);

}else{//hour>=10,minute<10,second<10

System.out.println(hour+":0"+minute+":0"+second);

}

}

}else{//hour<10

if(minute>=10){

if(second>=10){//hour<10,minute>=10,second>=10

System.out.println("0"+hour+":"+minute+":"+second);

}else{//hour<10,minute>=10,second<10

System.out.println("0"+hour+":"+minute+":0"+second);

}

}else{

if(second>=10){//hour<10,minute<10,second>=10

System.out.println("0"+hour+":0"+minute+":"+second);

}else{//hour<10,minute<10,second<10

System.out.println("0"+hour+":0"+minute+":0"+second);

}

}

10: 有3个整数,给出提示信息:

能否创建三角形;

如果能构建三角形,提示是直角三角形还是等边三角形等腰三角形还是普通三角形;

最后输出三角形面积;

import java.util.Scanner;

public class exe10 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输第一条边:");

int first = sc.nextInt();

System.out.println("请输第二条边:");

int second = sc.nextInt();

System.out.println("请输第三条边:");

int third = sc.nextInt();

//判断能否形成三角形

if(first+second>third|first+third>second|second+third>first){

System.out.println("可以形成三角形");

//判断是否等腰

if(first==second|first==third|second==third){

if(first==second&&first==third){

System.out.println("等边三角形");

}else if(first*first+second*second==third*third|first*first==second*second+third*third|second*second==third*third+first*first){

System.out.println("等腰直角三角形");

}else{

System.out.println("等腰三角形");

}

}else if(first*first+second*second==third*third|first*first==second*second+third*third|second*second==third*third+first*first){

System.out.println("直角三角形");

}else{

System.out.println("普通三角形");

}

}else{

System.out.println("不可以形成三角形");

}

}

}

11:随机输入一个字母,如果是大写字母就转化为小写字母输出;如果是小写字母就转化为大写字母输出。

import java.util.Scanner;

public class exe11 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入一个字母");

char ch = sc.next().charAt(0);

if(ch <='Z'&& ch >= 'A'){

ch = (char) (ch + 32);

System.out.print("小写字母:" + ch);

}else if(ch>='a'&&ch<='z'){

ch = (char) (ch - 32);

System.out.print("大写字母:" + ch);

}

}

}

12:使用if结构实现学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

import java.util.Scanner;

public class exe12 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入分数:");

double scord = sc.nextDouble();

if(scord>=90){

System.out.println("该同学的成绩为:A");

}else if(scord>=60&&scord<90){

System.out.println("该同学的成绩为:B");

}else{

System.out.println("该同学的成绩为:C");

}

}

}

13:使用条件结构实现:岳灵珊同学参加到Java的学习,他父亲岳不群和母亲宁中则承诺:

如果岳灵珊的考试成绩==1OO分,父亲给她买辆车

如果岳灵珊的考试成绩>=90分,母亲给她买台笔记本电脑

如果岳灵珊的考试成绩>=60分,母亲给她买部手机

如果岳灵珊的考试成绩<60分,没有礼物

import java.util.Scanner;

public class exe13 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入分数:");

double scord = sc.nextDouble();

if(scord==100){

System.out.println("父亲给她买辆车");

}

else if(scord>=90){

System.out.println("母亲给她买台笔记本电脑");

}

else if(scord>=60){

System.out.println("母亲给她买部手机");

}else{

System.out.println("没有礼物");

}

}

}

14:使用条件结构实现,如果用户名等于字符‘青’,密码等于数字‘123’,就输出“欢迎你,青”,否则就输出“对不起,你不是青”。

import java.util.Scanner;

public class exe14 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入用户名:");

String user = sc.next();

System.out.println("请输入密码:");

int password = sc.nextInt();

if(user.equals("青")&&password==123){

System.out.println("欢迎你,青");

}else{

System.out.println("对不起,你不是青");

}

}

}

15:求ax2+bx+c=0方程的根。

a,b,c分别为函数的参数,

如果:b2-4ac>0,则有两个解;b2-4ac=0,则有一个解;b2-4ac<0,则无解;

已知:

x1=(-b+sqrt(b2-4ac))/2a

x2=(-b-sqrt(b2-4ac))/2a

import java.util.*;

public class exe15 {

public static void main(String[] args) {

Scanner sc =new Scanner(System.in);

System.out.println("请分别输入三个参数:");

double a = sc.nextDouble();

double b = sc.nextDouble();

double c = sc.nextDouble();

System.out.println("三个参数分别为:");

System.out.println("a:"+a+",b:"+b+",c:"+c);

double x1;

double x2;

if(b*b-4*a*c>0){

System.out.println("方程有两个解:");

x1=(-b+sqrt(b*b-4*a*c))/(2*a);

x2=(-b-sqrt(b*b-4*a*c))/(2*a);

System.out.println("x1="+x1+",x2="+x2);

}

else if(b*b-4*a*c==0){

System.out.println("方程有一个解:");

x1=x2=(-b+sqrt(b*b-4*a*c))/(2*a);

System.out.println("x1=x2="+x1);

}else{

System.out.println("无解");

}

}

private static double sqrt(double d) {

// TODO Auto-generated method stub

return 0;

}

}

16:使用switch选择结构实现判断某年某月某日是这一年的第几天?

import java.util.Scanner;

public class exe16 {

public static void main(String[] args) {

//使用switch选择结构实现判断某年某月某日是这一年的第几天?

 Scanner scan = new Scanner(System.in);

     System.out.println("请输入year:");

     int year = scan.nextInt();

     System.out.println("请输入month:");

     int month = scan.nextInt();

     System.out.println("请输入day:");

     int day = scan.nextInt();

     int sumDay = 0;

     switch(month){

              case 12:sumDay+=31;

              case 11:sumDay+=30;

              case 10:sumDay+=31;

              case 9:sumDay+=30;

              case 8:sumDay+=31;

              case 7:sumDay+=31;

              case 6:sumDay+=30;

              case 5:sumDay+=30;

              case 4:sumDay+=30;

              case 3:sumDay+=31;

              case 2:

                    if(year%4==0&&year%100!=0||year%400==0){

                        sumDay+=29;

                    }else{

                        sumDay+=28;

                     }

              case 1:sumDay+=day;

    }

System.out.println(month+"月"+day+"日"+"是该年的第"+sumDay+"天");

}

}

17:使用switch选择结构判断一个月份属于一年中的那个季节。(春夏秋冬)

import java.util.Scanner;

public class exe17 {

public static void main(String[] args) {

// 使用switch选择结构判断一个月份属于一年中的那个季节。(春夏秋冬)

Scanner sc = new Scanner(System.in);

System.out.println("请输入月份:");

int month = sc.nextInt();

switch(month){

case 1:

case 2:

case 3:

System.out.println("春");

break;

case 4:

case 5:

case 6:

System.out.println("夏");

break;

case 7:

case 8:

case 9:

System.out.println("秋");

break;

case 10:

case 11:

case 12:

System.out.println("冬");

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值