学习Java之day04

1.分支结构中的if-else(条件判断结构)

/*编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,
对它们进行排序(使用 if-else if-else),并且从小到大输出。


说明:
1. if-else结构是可以相互嵌套的。
2. 如果if-else结构中的执行语句只有一行时,对应的一对{}可以省略的。但是,不建议大家省略。
*/
public class IfTest2 {
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       System.out.println("请输入第一个整数:");
       int num1 = scanner.nextInt();
       System.out.println("请输入第二个整数:");
       int num2 = scanner.nextInt();
       System.out.println("请输入第三个整数:");
       int num3 = scanner.nextInt();

       if (num1 >= num2) {
           if (num3 >= num1)
               System.out.println(num2 + "," + num1 + "," + num3);
           else if (num3 <= num2)
               System.out.println(num3 + "," + num2 + "," + num1);
           else
               System.out.println(num2 + "," + num3 + "," + num1);

      } else {
           if (num3 >= num2)
               System.out.println(num1 + "," + num2 + "," + num3);
           else if (num3 <= num1)
               System.out.println(num3 + "," + num1 + "," + num2);
           else
               System.out.println(num1 + "," + num3 + "," + num2);

      }
  }
}
/*
大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:
高:180cm以上;富:财富1千万以上;帅:是。
如果这三个条件同时满足,则:“我一定要嫁给他!!!”
如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。”
如果三个条件都不满足,则:“不嫁!”

*/

public class Ifexer1 {
   public static void main(String[] args) {
       int high = 152;
       double rich = 100.0;//单位为万
       boolean isHandsome = true;
       
       if(high >= 180 && rich >=1000.0 && isHandsome) {
           System.out.println("我一定要嫁给他!!!");
      }else if(high >= 180 || rich >=1000.0 || isHandsome) {
           System.out.println("嫁吧,比上不足,比下有余。");
      }else {
           System.out.println("不嫁!");
      }
  }
}

2.分支结构之二:switch-case

1.格式 switch(表达式){ case 常量1: 执行语句1; //break;

case 常量2: 执行语句2; //break;

...

default: 执行语句n; //break;

}

2.说明: ① 根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。 当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构 末尾结束为止。

② break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构

③ switch结构中的表达式,只能是如下的6种数据类型之一: byte 、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)

④ case 之后只能声明常量。不能声明范围。

⑤ break关键字是可选的。

⑥ default:相当于if-else结构中的else. default结构是可选的,而且位置是灵活的

/*
例题:对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。

说明:如果switch-case结构中的多个case的执行语句相同,则可以考虑进行合并。
*/
public class SwitchCaseTest1 {
   public static void main(String[] args) {
       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;
      }
       

       //更优的解决方案:
       switch(score / 60){
       case 0:
           System.out.println("不及格");
           break;
       case 1:
           System.out.println("及格");
           break;
      }
  }
}
/*
从键盘分别输入年、月、日,判断这一天是当年的第几天

  注:判断一年是否是闰年的标准:
      1)可以被4整除,但不可被100整除
   
      2)可以被400整除


说明:
1. 凡是可以使用switch-case的结构,都可以转换为if-else。反之,不成立。
2. 我们写分支结构时,当发现既可以使用switch-case,(同时,switch中表达式的取值情况不太多),
 又可以使用if-else时,我们优先选择使用switch-case。原因:switch-case执行效率稍高。

*/
public class SwitchCaseExer {
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 sumDays = 0;

       switch(month){
       case 12:
           sumDays += 30;
       case 11:
           sumDays += 31;
       case 10:
           sumDays += 30;
       case 9:
           sumDays += 31;
       case 8:
           sumDays += 31;
       case 7:
           sumDays += 30;
       case 6:
           sumDays += 31;
       case 5:
           sumDays += 30;
       case 4:
           sumDays += 31;
       case 3:
           //sumDays += 28;
           //判断year是否是闰年
           if((year % 4 == 0 && year % 100 != 0 ) || year % 400 == 0){
               sumDays += 29;
          }else{
               sumDays += 28;
          }

       case 2:
           sumDays += 31;
       case 1:
           sumDays += day;
      }

       System.out.println(year + "年" + month + "月" + day + "日是当年的第" + sumDays + "天");
  }
}

3.For循环结构的使用

一、循环结构的4个要素 ① 初始化条件 ② 循环条件 --->是boolean类型 ③ 循环体 ④ 迭代条件

二、for循环的结构

for(①;②;④){ }

执行过程:① - ② - ③ - ④ - ② - ③ - ④ - ... - ②



posted @ 2021-12-15 16:45  天覆者  阅读(111)  评论(0)    收藏  举报