Java基础练习之流程控制(一)

1、编写程序,从键盘接收整数参数。如果该数为1-7,打印对应的星期值,否则打印“非法参数”。

import java.util.Scanner;

public class TestSwitch{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.print("请输入星期值:");
        int week = input.nextInt();
        
        switch(week){
            case 1:
                System.out.println("星期一:Monday");
                break;
            case 2:
                System.out.println("星期二:Tuesday");
                break;
            case 3:
                System.out.println("星期三:Wednesday");
                break;
            case 4:
                System.out.println("星期四:Thursday");
                break;
            case 5:
                System.out.println("星期五:Friday");
                break;
            case 6:
                System.out.println("星期六:Saturday");
                break;
            case 7:
                System.out.println("星期天:Sunday");
                break;
            default:
                System.out.println("非法星期值");
                break;
        }
        
    }
}

 

运行:
在这里插入图片描述

在这里插入图片描述

2、从键盘分别输入年、月、日,判断这一天是当年的第几天。

import java.util.Scanner;

public class TestDaysOfYear{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        
        System.out.print("年:");
        int year = input.nextInt();
        
        System.out.print("月:");
        int month = input.nextInt();
        
        System.out.print("日:");
        int day = input.nextInt();
        
        int days = day;
        
        //加前面几个月的满月天数
        switch(month){
            case 12:
                //前面11个月的总天数
                //days += 第11月的天数;
                days += 30;
            case 11:
                //前面10个月的总天数
                //days += 第10月的天数;
                days += 31;
            case 10:
                days += 30;//九月
            case 9:
                days += 31;//八月
            case 8:
                days += 31;//七月
            case 7:
                days += 30;//六月
            case 6:
                days += 31;//五月
            case 5:
                days += 30;//四月
            case 4:
                days += 31;//三月
            case 3:
                days += 28;//二月
                /*if(闰年){
                    days++;
                }
                */
                if(year % 4 ==0 && year % 100 != 0 || year%400==0){
                    days++;
                }
            case 2:
                days += 31;//一月
        }
        
        System.out.println(year + "年" + month + "月" + day + "日是这一年的第" + days + "天");
        
        /*
        int days = 0;
        switch(month){
            case 1:
                days = day;
                break;
            case 2:
                days = 31 + day;
                break;
            case 3:
                //days = 31 + 二月的天数 + day;
                days = 31 + 28 + day;
                break;
            case 4:
                //days = 31 + 二月的天数 + 31 + day;
                days = 31 + 28 + 31 + day;
                break;
            ....
        }
        
        if(闰年 && month >2){
            days++;
        }
        */
        
    }
}

 

在这里插入图片描述

3、Switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?

答:

  • switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是int、 short、char 或者 byte。
  • long不能作用于swtich。
  • JDK1.5之后支持枚举。
  • JDK1.7新加入了String类型。

4、写程序:从键盘上读入一个学生成绩,存放在变量score中,根据score的值输出其对应的成绩等级:

score>=90 等级:A
70=<score<90 等级:B
60=<score<70 等级:C
score<60 等级:D

import java.util.Scanner;

public class Exam1 {

    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.print("请输入学生的成绩:");
        int score = input.nextInt();

        if(score>=90){
            System.out.println("等级:A");
        }else if(score>=70){
            System.out.println("等级:B");
        }else if(score>=60){
            System.out.println("等级:C");
        }else{
            System.out.println("等级:D");
        }
        
        /*
        if(score>=90){
            System.out.println("等级:A");
        }else if(score<90 && score>=70){
            System.out.println("等级:B");
        }else if(score<70 && score>=60){
            System.out.println("等级:C");
        }else{
            System.out.println("等级:D");
        }
        */
    }
}

 

在这里插入图片描述

5、根据指定月份,打印该月份所属的季节。

3,4,5 春季
6,7,8 夏季
9,10,11 秋季
12, 1, 2 冬季

if-else if-else语句:

[第一种]
if(x==3 || x==4 || x==5)
System.out.println(x+"春季");
else if(x==6 || x==7 || x==8)
System.out.println(x+"夏季");
else if(x==9 || x==10 || x==11)
System.out.println(x+"秋季");
else if(x==12 || x==1 || x==2)
System.out.println(x+"冬季");
else
System.out.println(x+"月份不存在");
[第二种]
if(x>12 || x<1)
System.out.println(x+"月份不存在");
else if(x>=3 && x<=5)
System.out.println(x+"春季");
else if(x>=6 && x<=8)
System.out.println(x+"夏季");
else if(x>=9 && x<=11)
System.out.println(x+"秋季");
else
System.out.println(x+"冬季");

switch-case语句:

import java.util.Scanner;

public class TestSeason{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.println("请输入当前月份:");
        int month = input.nextInt();
        
        switch(month){
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;
            case 12:
            case 1:
            case 2:
                System.out.println("冬季");
                break;
            default:
                System.out.println("非法月份");
        }
    }
}

 

在这里插入图片描述

在这里插入图片描述

6、求ax^2+bx+c=0方程的根。

在这里插入图片描述

import java.util.Scanner;

public class Exer5{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        
        System.out.println("一元二次方程:ax^2+bx+c=0");
        System.out.print("请输入参数a:");
        double a = input.nextDouble();
        
        System.out.print("请输入参数b:");
        double b = input.nextDouble();
            
        System.out.print("请输入参数c:");
        double c = input.nextDouble();

        if(a!=0){
            double temp = b*b - 4*a*c;
            if(temp==0){
                double x = -b/(2*a);
                System.out.println("该方程是一元二次方法,有两个相同解:" + x);
            }else if(temp>0){
                double sqrt = Math.sqrt(temp);
                double x1 = (-b+ sqrt)/(2*a);
                double x2 = (-b- sqrt)/(2*a);
                System.out.println("该方程是一元二次方法,两个不同解:" + x1 +"," + x2);
            }else{
                System.out.println("该方程是一元二次方法,在实数范围内无解!");
            }
        }else{
            if(b!=0){
                double x = -c/b;
                System.out.println("该方程是一元一次方程,有一个解:" + x);
            }else{
                System.out.println("不是方程,是一个等式");
                if(c == 0){
                    System.out.println("等式成立");
                }else{    
                    System.out.println("等式不成立");
                }
            }
        }
    }
}

 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

7、在JAVA中,如何跳出当前的多重嵌套循环?

答:用break或return 的方式。

在这里插入图片描述

posted @ 2021-03-04 22:20  BugMiaowu2021  阅读(102)  评论(0编辑  收藏  举报