第五天-----------if--else,switch,case

package java5;

import java.util.Scanner;

public class Test {
    /**
     * 1. if-else if-else:多分支
     *             语法:
     *                 if(条件判断){
     *                 
     *                 }else if(条件判断){
     * 
     *                 }else if(条件判断){
     * 
     *                 }.....
     *                 else{    
     *                 }
     * 
     *             注意:如果有一个分支成立则后面的分支不会继续执行。
     * 2.if语句的嵌套:
     *         if语句中可以继续嵌套if和else语句,并且可以嵌套很多层。
     *         注意:1.进行嵌套的时候一套注意代码格式。
     *              2.在写一些比较复杂的嵌套的时候,尽量借助于逻辑运算符进行条件的合并和简化。    
     *              3.进行嵌套的时候最多的嵌套不要超过三层。
     * 3.三元运算符:
     *         语法:条件表达式?条件成立的代码:条件不成立的代码;
     *             执行过程:当条件表达式返回true,则执行“:”前面的内容,否则,执行“:”后面的内容。
     *         注意:1.在进行一些复杂的分支语句的时候不建议使用三元运算符,因为提高了
     *                 程序的阅读难度。    
     *              2.条件表达式的结果必须是boolean类型的数据。
     * 4.switch-case:多分支         
     *             语法:switch(变量){
     *                         case 值:
     *                             代码;
     *                         break;
     *                         case 值:
     *                             代码;
     *                         break;
     *                         case 值:
     *                             代码;
     *                         break;
     *                         .....
     *                         default:
     *                         break;
     *                     }
     * 
     *    注意:1.switch中的变量数据类型:byte,short,int,char,String(JDK1.6之后),枚举
     *             2.如果case分支结束没有break语句则会继续执行下面的分支语句(不会再判断case的值),直到遇到break关键字结束。
     *             3.case后面的值必须要和变量的数据类型一致。
     *             4.变量和case后面的值做相等运算,所以switch不能实现大于小于该类判断。
     * 三.循环结构:
     *         1.while:
     *             语法:
     *                 while(判断条件){
     *                         //循环体
     *                     }
     *              伪代码:
     *                  当(判断条件){
     *                     //判断条件成立执行的代码。
     *                 }
     *     执行过程:
     *         1.判断循环条件是否为true。
     *         2.如果循环条件为true,则执行循环体。
     *         3.执行完循环体继续判断条件是否为true,依次循环。
     *         4.如果条件为false,则循环结束。
     * 注意:1.while循环体的最少执行次数为0次
     *         2.当while条件永远为true的时候,该循环就变成了死循环。
     *         2.do-while:
     *         3.for:
     * 
     * 
     * 
     * 
     * 
     * 
     * 
     */
    
    public static void main(String[] args) {
        //计算1到100的和
        //定义变量存放和
        int sum=0;
        //定义一个循环变量
        int i=0;
        /*i++;
        sum=sum+i;
        i++;
        sum=sum+i;*/
        while(i<100) {
            i++;
            sum=sum+i;
        }
        System.out.println("1-100的和为:"+sum);
            
        
        
        
        
        
        
        //两个数比较大小
        if(2>3) {
            System.out.println("2>3");
        }else {
            System.out.println("2<3");
        }
        
        String str=2>3?"2>3":"2<3";
        System.out.println(str);
        
        
        int x=3;
        int y=4;
        switch (x) {
        case 2:
            x=y--;
            break;
        case 3:
            x=x++ + --y;  //x=6    y=3
        case 4:
            y=--x +x++;       //x=6    y=10
        case 5:
            y++;  //x=6   y=  11
            break;
        default:
            --x;
            break;
        }
        
        System.out.println(x+"----"+y);
        
        
        
        
        //根据用户输入的季节输出对应的月份
        
        //创建Scanner对象
        Scanner scanner=new Scanner(System.in);
        //提醒用户输入
        /*System.out.print("请输入一个季节:");
        //接受用户输入
        String season=scanner.next();
        //判断季节输出对应的月份
        switch (season) {
        case "春天":
            System.out.println("10月,11月,12月");
            //break;
        case "夏天":
            System.out.println("1月,2月,3月");        
            //break;
        case "秋天":
            System.out.println("4月,5月,6月");
            //break;
        case "冬天":
            System.out.println("7月,8月,9月");
            //break;
        default:
            System.out.println("输入有误!");
            //break;
        }*/
        
        /*if(season.equals("春天")) {
            System.out.println("1月,2月,3月");
        }else if(season.equals("夏天")) {
            System.out.println("4月,5月,6月");
        }else if(season.equals("秋天")) {
            System.out.println("7月,8月,9月");
        }else if(season.equals("冬天")) {
            
        }else {
            System.out.println("输入有误!");
        }*/
        
    }

}
 

作业:

1.企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

package demo1;

 

import java.util.Scanner;

 

public class Demo3 {

   public static void main(String[] args) {

      Scanner scanner=new Scanner(System.in);

      System.out.println("请输入这个月的利润:");

      double lirong=scanner.nextDouble();

      double jiangjin=0;

      if(lirong<=100000){

         jiangjin=lirong*0.1;

         System.out.println("奖金总数为:"+jiangjin);

      }else if(lirong>100000&&lirong <=200000){

         jiangjin=100000*0.1+(lirong-100000)*0.075;

         System.out.println("奖金总数为:"+jiangjin);

      }else  if(lirong>200000&&lirong<=400000 ){

         jiangjin =100000*0.1+100000*0.075+(lirong-200000);

         System.out.println("奖金总数为:"+jiangjin);

      }else if (lirong >400000&&lirong <=600000) {

         jiangjin=100000*0.1+100000*0.075+200000*0.05+(lirong-400000)*0.03;

         System.out.println("奖金总数为:"+jiangjin);

      }else if(lirong >600000&&lirong<=1000000){

         jiangjin=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(lirong-600000)*0.015;

         System.out.println("奖金总数为:"+jiangjin);

      }else if (lirong>1000000) {

         jiangjin=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(jiangjin-1000000)*0.01;

         System.out.println("奖金总数为:"+jiangjin);

        

      }

        

     

   }

 

}

                    

 

 

2.计算1000之内能被3整除的数的和.

package demo1;

 

public class Demo4 {

   public static void main(String[] args) {

      int i=0;

      int sum=0;

      while(i<1000){

         i=i+1;

         if(i%3==0){

            sum=sum+i

         }

        

        

      }

      System.out.println("1000以内能被3整除的数的和为:"+sum);

   }

 

}

 

3.用户输入年、月、日三个数据,判断这一天是当年的第几天,注意闰年的2月是29天,其他的是是28天。

package demo1;

 

import java.util.Scanner;

 

public class Demo5 {

   public static void main(String[] args) {

     

      Scanner scanner=new Scanner(System.in);

      System.out.print("请输入所要查询年份:");

      int year=scanner.nextInt();

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

      int month=scanner.nextInt();

      System.out.print("请输入日:");

      int day=scanner.nextInt();

      int sum=0;

      switch (month) {

        

        

        case 12:

          sum=sum+30;

        case 11:

           sum=sum+31;

        case 10:

            sum=sum+30;  

        case 9:

            sum=sum+31;

        case 8:

            sum=sum+31;

        case 7:

            sum=sum+30;

        case 6:

             sum=sum+31;

        case 5:

              sum=sum+30;

        case 4:

              sum=sum+31;

        case 3:

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

             sum=sum+29;

          }else{

             sum=sum+28;

          }

         case 2:

              sum=sum+31;

         

         case 1:

             sum=sum+0;

          break;

      default:

         System.out.println("输入错误,请重新输入月份!");

         break;

      }

      sum=sum+day;

      System.out.println(year+""+month+""+day+""+"是这年的第"+sum+"");

     

   }

 

}

 

 

 

4.打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。.

 package demo1;

 

import java.util.Scanner;

 

public class Demo8 {

   public static void main(String[] args) {

      //Scanner scanner=new Scanner(System.in);

      //System.out.println("请输入一个三位数字:");

      //int shu=scanner.nextInt();

      int baiwei;

      int shiwei;

      int gewei;

      int i=100;

     

      while (i<=999) {

          i=i+1;

          baiwei=i/100%10;

          

           shiwei=i/10%10;

           gewei=i%10;

          int a=baiwei*baiwei*baiwei+shiwei*shiwei*shiwei+gewei*gewei*gewei;

          

         if(a==i){

             

            System.out.println(i+"是水仙花!");

         }

        

      }

   }

 

}

 

 

5. 请输入一个数字,计算该数的阶乘。

  例如:!5 =5*4*3*2*1;

package demo1;

 

import java.util.Scanner;

 

public class Demo6 {

   public static void main(String[] args) {

      Scanner scanner=new Scanner(System.in);

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

      int shu=scanner.nextInt();

      int i=0;

      int c=1;

      while (i<shu) {

         i=i+1;

         c=c*i;

      }

      System.out.println(shu+"的阶乘为:"+c);

   }

 

}

 

6.(选做题)古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,输入一个月份,求当月的兔子总数为多少?  

 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值