JAVASE 小白学习笔记(3-1)流程控制中判断与选择练习题

1.从键盘上输入一个分数,如果60分(含)以上,就打印合格,如果在60分以下,就打印不合格

package test.disanzhang;
//导包,注意导包的位置在class的上面
import java.util.Scanner;
public class test1 {
    
    
    public static void main(String[] args) {
    
    
        System.out.println("请输入成绩:");
        //创建键盘录入对象
        Scanner sc=new Scanner(System.in);
        //通过对象获取数据
        int score=sc.nextInt();
        //利用if...else语句来进行条件判断,当成绩>=60分时,输出成绩合格,否则,输出成绩不合格
        if(score>=60&&score<=100)
        {
    
    
            System.out.println("成绩合格");
        }
        else{
    
    
            System.out.println("成绩不合格");
        }
    }
}

输出结果为:

请输入成绩:
25
成绩不合格
请输入成绩:
85
成绩合格

2.岳小鹏参加java考试,他和父亲岳不群达成协议:如果:
成绩为100分时,奖励一辆BWM;
成绩为(80,99],奖励一台iphone;
成绩为(60,80]时,奖励一个ipad;
其它时,什么奖励都没有。
请从键盘上输入岳小鹏的期末成绩,并加以判断

public class Test2 {
    
    
    public static void main(String[] args) {
    
    
        System.out.println("输入岳小鹏的期末考试成绩:");
        //创建键盘录入对象
        Scanner sc=new Scanner(System.in);
        //利用对象来获取数据
        double score=sc.nextDouble();
        //此种场景为多条件判断,由此联想到要使用 if-else if-else结构来进行判断
        if(score==100){
    
    
            System.out.println("奖励一台BWM");
        }
        else if(score>80&&score<=90){
    
    
            System.out.println("奖励一台iphone7");
        }
        else if(score>=60&&score<=80){
    
    
            System.out.println("奖励一台ipad");
        }
        else{
    
    
            System.out.println("什么奖励也没有");
        }

    }
}

输出结果为:

输入岳小鹏的期末考试成绩:
100
奖励一台BWM
输入岳小鹏的期末考试成绩:
60
奖励一台ipad
输入岳小鹏的期末考试成绩:
85
奖励一台iphone7
输入岳小鹏的期末考试成绩:
55
什么奖励也没有

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

package test.disanzhang;
//导包
import java.util.Scanner;
public class Test3 {
    
    
    public static void main(String[] args) {
    
    
        //创建键盘录入对象
        Scanner sc=new  Scanner(System.in);
        //根据对象获取整数1
        System.out.println("输入第一个整数:");
        int num1=sc.nextInt();
        //根据对象获取整数2
        System.out.println("输入第二个整数:");
        int num2=sc.nextInt();
        //根据对象获取整数3
        System.out.println("输入第三个整数:");
        int num3=sc.nextInt();
        //此场景为多条件判断,可以利用if-else if-else结构进行判断选择
        if(num1<=num2&&num2<=num3){
    
    
            System.out.println("三个数从小到大依此为:"+num1+" "+num2+" "+num3);
        }
        else if(num1<=num3&&num3<=num2){
    
    
            System.out.println("三个数从小到大依此为:"+num1+" "+num3+" "+num2);
        }
        else if(num2<=num1&&num1<=num3){
    
    
            System.out.println("三个数从小到大依此为:"+num2+" "+num1+" "+num3);
        }
        else if(num2<=num3&&num3<=num1){
    
    
            System.out.println("三个数从小到大依此为:"+num2+" "+num3+" "+num1);
        }
        else if(num3<=num1&&num1<=num2){
    
    
            System.out.println("三个数从小到大依此为:"+num3+" "+num1+" "+num2);
        }
        else {
    
    
            System.out.println("三个数从小到大依此为:"+num3+" "+num2+" "+num1);
        }

    }
}

输出结果为:

输入第一个整数:
8
输入第二个整数:
9
输入第三个整数:
6
三个数从小到大依此为:6 8 9

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

package test.disanzhang;
//导包
import java.util.Scanner;
public class Test4 {
    
    
    public static void main(String[] args) {
    
    
        //创建键盘录入对象
        Scanner sc=new Scanner(System.in);
        //输入男生的身高
        System.out.println("请输入男生的身高:(cm)");
        int shengao=sc.nextInt();
        //输入男生的财富
        System.out.println("请输入男生的财富:(千万)");
        double caifu=sc.nextDouble();
        //输入男生是否帅气
        System.out.println("男生帅否:(true/false)");
        boolean beauty=sc.nextBoolean();
        //进行判断,当身高高于(含)180,财富大于(含)1千万,帅气时,一定要嫁
        if(shengao >= 180 && caifu >= 1 && beauty== true){
    
    
            System.out.println("我一定要嫁给他!!!");
       }
        //进行判断,满足其中一个条件就嫁,比上不足,比下有余
        else if(shengao>=180||caifu>=1||beauty==true){
    
    
            System.out.println("嫁吧,比上不足,比下有余");
        }
        //没有一个条件满足时,不嫁
        else {
    
    
            System.out.println("不嫁!");
        }

    }
}

输出结果为:

请输入男生的身高:(cm)
190
请输入男生的财富:(千万)
1
男生帅否:(true/false)
true
我一定要嫁给他!!!

请输入男生的身高:(cm)
150
请输入男生的财富:(千万)
2
男生帅否:(true/false)
false
嫁吧,比上不足,比下有余


请输入男生的身高:(cm)
150
请输入男生的财富:(千万)
0.3
男生帅否:(true/false)
false
不嫁!


5.求ax^2+bx=c=0的根。a,b,c分别为将函数的参数。

如果a≠0,那么:当b^2-4ac>0,有两个解;在这里插入图片描述

当b^2-4ac=0,则有一个解;在这里插入图片描述
如果a=0,b≠0,那么,在这里插入图片描述
(1)求x^2-4x+1=0方程的根
(2)求x^2-2x+1=0程的根

扫描二维码关注公众号,回复: 12362943 查看本文章
mport java.util.Scanner;
//导入数学公式包
import static java.lang.Math.sqrt;
public class Test5 {
    
    
    public static void main(String[] args) {
    
    
        System.out.println("请输入方程组ax^2+bx+c=0的参数");
        //创建键盘录入对象
        Scanner sc=new Scanner(System.in);
        //输入方程组第一个参数
        System.out.println("请输入参数a的值:");
        int a=sc.nextInt();
        //输入方程组第二个参数
        System.out.println("请输入参数b的值:");
        int b=sc.nextInt();
        //输入方程组第三个参数
        System.out.println("请输入参数c的值:");
        int c=sc.nextInt();
        if(a!=0){
    
    
            if(b*b-4*a*c>0){
    
    
                System.out.println("方程组有两个解");
                System.out.println("解为:"+(-b+sqrt(b*b-4*a*c))/2*a+"   "+(-b-sqrt(b*b-4*a*c))/2);
            }
            if(b*b-4*a*c==0){
    
    
                System.out.println("方程组有一个解");
                System.out.println("解为:"+(-b/(2*a)));
            }
            if(b*b-4*a*c<0){
    
    
                System.out.println("方程组无解");
            }

        }
        if(a==0&&b!=0){
    
    
            System.out.println("解为:"+(-c/b));
        }


    }
}
参数
请输入参数a的值:
1
请输入参数b的值:
-4
请输入参数c的值:
1
方程组有两个解
解为:3.732050807568877   0.2679491924311228
请输入方程组ax^2+bx+c=0的参数
请输入参数a的值:
1
请输入参数b的值:
-2
请输入参数c的值:
1
方程组有一个解
解为:1

6.假设你想开发一个玩彩票的游戏,程序随机的产生一个两位数的彩票,提示用户输入一个两位数,然后按照下面的规则来判定用户是否能赢。
1)如果用户输入的数匹配彩票的实际顺序,奖金10000美元
2)如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金3000美元
3)如果用户输入的一个数字仅能满足顺序情况下匹配彩票的一个数字,奖金1000美元
4)如果用户输入的一个数字仅能满足非顺序情况下匹配彩票的一个数字,奖金为500元
5)如果用户输入的数字没有匹配任何一个数字,则该彩票作废

package test.disanzhang;
import java.util.Scanner;
public class Test6 {
    
    
    public static void main(String[] args) {
    
    
        /*使用Math.random()产生随机数,Math.random():产生[0,1)范围的随机数
        Math.random()*90:产生[0,90)范围内的随机数;
         Math.random()*90+10:[10,100)即得到[10,99],即为随机的两位数
         */
        int real=(int)(Math.random()*90+10);
        System.out.println("彩票的数字为:"+real);
        int realge=real%10;
        int realshi=real/10;


        Scanner sc=new Scanner(System.in);
        System.out.println("请输入用户随机输入的两位数:");
        int guess=sc.nextInt();
        int guessshi=guess/10;
        int guessge=guess%10;

        if(guess==real){
    
    
            System.out.println("奖金为10000美元");
        }
        else if (guessge == realshi && guessshi == realge) {
    
    
            System.out.println("奖金为3000美元");
        }
        else if(guessge==realge||guessshi==realshi){
    
    
            System.out.println("奖金为1000美元");
        }
        else if(guessge==realshi||guessshi==realge){
    
    
            System.out.println("奖金为500美元");
        }
        else{
    
    
            System.out.println("用户输入的数字没有匹配任何一个数字,该彩票作废");
        }

    }
}

输出结果测试:

彩票的数字为:51
请输入用户随机输入的两位数:
51
奖金为10000美元
彩票的数字为:78
请输入用户随机输入的两位数:
87
奖金为3000美元
彩票的数字为:38
请输入用户随机输入的两位数:
48
奖金为1000美元
彩票的数字为:26
请输入用户随机输入的两位数:
63
奖金为500美元
彩票的数字为:66
请输入用户随机输入的两位数:
55
用户输入的数字没有匹配任何一个数字,该彩票作废

7.使用switch把阿拉伯数字转为“壹,贰,叁,肆,伍,陆,柒,捌,玖”;其他都输出“other”。

package test.disanzhang;
//导包
import java.util.Scanner;
public class Test8 {
    
    
    public static void main(String[] args) {
    
    
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);
        System.out.println("请输出阿拉伯数字:");
        //通过对象获取数据格式
        int num = sc.nextInt();
        /* 1.switch结构表达式的返回结果只能是byte,short,char,
        int,枚举(JDK1.5后),String(JDK1.7以后)
        2.表达式的返回结果的类型需要与case后的值的类型保持一致
        3.case后面只能跟常量值,不能是变量值或不确定的表达式值
        4.同一个switch语句,case的常量值必须互不相同
         */
        switch (num) {
    
    
            case 1: {
    
    
                System.out.println("汉字为壹");
                break;
            }
            case 2: {
    
    
                System.out.println("汉字为贰");
                break;
            }
            case 3:{
    
    
                System.out.println("汉字为叁");
                break;
            }
            case 4:{
    
    
                System.out.println("汉字为肆");
                break;
            }
            case 5:{
    
    
                System.out.println("汉字为伍");
                break;
            }
            case 6:{
    
    
                System.out.println("汉字为陆");
                break;
            }
            case 7:{
    
    
                System.out.println("汉字为柒");
                break;
            }
            case 8:{
    
    
                System.out.println("汉字为捌");
                break;
            }
            case 9:{
    
    
                System.out.println("汉字为玖");
            }
            default:{
    
    
                System.out.println("other");
                break;
            }

        }
    }

}

输出的结果为:

请输出阿拉伯数字:
3
汉字为叁
请输出阿拉伯数字:
15
other

8.根据用于指定月份,打印该月份所属的季节
3,4,5 春季 6,7,8夏季9,10,11秋季12,1,2冬季
方法一:

package test.disanzhang;
//导包
import java.util.Scanner;
public class Test9 {
    
    
    public static void main(String[] args) {
    
    
        //创建键盘录入对象
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入月份:");
        //根据对象获取数据类型
        int month=sc.nextInt();
        //利用if-else if-else来进行多分支选择
        if(month==3||month==4||month==5){
    
    
            System.out.println("春季");
        }
        else if(month==6||month==7||month==8){
    
    
            System.out.println("夏季");
        }
        else if(month==9||month==10||month==11){
    
    
            System.out.println("秋季");
        }
        else if(month==12||month==1||month==2){
    
    
            System.out.println("冬季");
        }
        else{
    
    
            System.out.println("您输入的月份有误");
        }
    }
}

方法二:

package test.disanzhang;
//导包
import java.util.Scanner;
public class Test99 {
    
    
    public static void main(String[] args) {
    
    
        System.out.println("请输入月份:");
        //创建键盘录入对象
        Scanner sc=new  Scanner(System.in);
        //根据对象获取数据格式
        int month=sc.nextInt();
        /* 1.break是可选的,当表达式返回结果与某个case后的值进行
        匹配成功后,执行相应分支的语句,一旦进入某个分支后,只有
        遇到break才会退出switch,否则将会执行下一个case的语句
        2.default是可选的。位置也不一定是在switch语句的最后,可以
        在任意case的位置。但是不管在哪里,都是要所有的case的常量值
        都不匹配后才会进入default分支,一旦进入default分支,也是需要
        遇到break后者switch的闭括号“}”才会停止*/
        switch(month){
    
    
            //这里会发生case穿透的现象
            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("您输入的月份有误");
                break;
            }

        }

    }
}

输出的结果为:

请输入月份:
8
夏季
请输入月份:
4
春季
请输入月份:
10
秋季
请输入月份:
1
冬季
请输入月份:
13
您输入的月份有误

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

package test.disanzhang;
import java.util.Scanner;
public class Test10 {
    
    
    public static void main(String[] args) {
    
    
        System.out.println("请输入数字:");
        Scanner sc=new Scanner(System.in);
        int num=sc.nextInt();
        switch(num){
    
    
            case 1:
            {
    
    
                System.out.println("星期一");
                break;
            }
            case 2:
            {
    
    
                System.out.println("星期二");
                break;
            }
            case 3:
            {
    
    
                System.out.println("星期三");
                break;
            }
            case 4:
            {
    
    
                System.out.println("星期四");
                break;

            }
            case 5:
            {
    
    
                System.out.println("星期五");
                break;
            }
            case 6:
            {
    
    
                System.out.println("星期六");
                break;
            }
            case 7:
            {
    
    
                System.out.println("星期日");
                break;
            }
            default:
            {
    
    
                System.out.println("非法参数");
            }
        }
    }
}

输出的结果为:

请输入数字:
6
星期六
请输入数字:
8
非法参数

10.从键盘分别输入年,月,日,判断这一天是当年的第几天
注:判断一年是否是闰年的标准:
可以被4整除,但不可以被100整除或者可以被400整除

package test.disanzhang;
import java.util.Scanner;
public class Test11 {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入年:");
        int year=sc.nextInt();
        System.out.println("请输入月:");
        int month=sc.nextInt();
        System.out.println("请输入日:");
        int day=sc.nextInt();
        int days=day;
        /*利用递加来递加每个月的天数来获得最后整年的天数
        要满足闰年的条件:普通闰年是公历年份是4的倍数且
        不是100的倍数,世纪闰年必须是400的倍数
        在2月份这里需要注意:
        如果是闰年,2月有29天
       */
        switch(month) {
    
    
            case 12:
                days+=30;
            case 11:
                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;
                //在2月份这里需要注意:如果是闰年,2月有29天
                if(year%4==0&&year%100!=0||year%400==0){
    
    
                    days++;
                }
            case 2:
                days+=31;
        }
        System.out.println(year+"年"+month+"月"+day+"日:这是这年的第"+days+"天");
    }
}

输出的结果为:

请输入年:
2020
请输入月:
11
请输入日:
13
20201113日:这是这年的第318

11.编写一个程序,为一个给定的年份找出其的对应的中国生肖。中国的生肖基于12年一个周期,每年用一个动物代表:rat(鼠),ox(牛),rabbit(兔),dragon(龙),snake(蛇),horse(马),sheep(羊),monkey(猴),rooster(鸡),dog(狗),pig(猪)。

package test.disanzhang;
import java.util.Scanner;
public class Test12 {
    
    
    public static void main(String[] args) {
    
    
        System.out.println("输入年份:");
        Scanner sc=new Scanner(System.in);
        int year=sc.nextInt();
        if(year%12==1){
    
    
            System.out.println("鸡年");
        }
        else if(year%12==2){
    
    
            System.out.println("狗年");
        }
        else if(year%12==3){
    
    
            System.out.println("猪年");
        }
        else if(year%12==4){
    
    
            System.out.println("鼠年");
        }
        else if(year%12==5){
    
    
            System.out.println("牛年");
        }
        else if(year%12==6) {
    
    
            System.out.println("虎年");
        }
        else if(year%12==7){
    
    
                System.out.println("兔年");
            }
        else if(year%12==8){
    
    
            System.out.println("龙年");
        }
        else if(year%12==9){
    
    
            System.out.println("蛇年");
        }
        else if(year%12==10){
    
    
            System.out.println("马年");
        }
        else if(year%12==11){
    
    
            System.out.println("羊年");
        }
        else {
    
    
            System.out.println("猴年");
        }
    }
}

输出的结果为:

输入年份:
2020
鼠年

12.赌数游戏:随机产生3个1-6个的整数,如果三个数相等,则称为"豹子";如果三个数之和大于9,称为"大",如果三个数的和小于等于9,称为"小"。用户从键盘输入押的是"豹子",“大”,“小”,并判断是否猜对了。

package test.disanzhang;
import java.util.Scanner;
public class Test7 {
    
    
    public static void main(String[] args) {
    
    
        /*使用Math.random():产生随机数
         Math.random():产生[0,1)范围的随机数
        Math.random()*6:产生[0,6)范围的随机数
        Math.random()*6+1:产生[1,7)范围的随机数,即为[1,6]
        使用(int)(Math.random()*6+1)产生[1,6]的范围的随机数*/
        //产生3个1-6的随机整数
        int randnum1=(int)(Math.random()*6+1);
        System.out.println("第一个随机数为:"+randnum1);
        int randnum2=(int)(Math.random()*6+1);
        System.out.println("第二个随机数为:"+randnum2);
        int randnum3=(int)(Math.random()*6+1);
        System.out.println("第二个随机数为:"+randnum3);
        //这里要进行使用字符串,将输出的结果通过字符串的形式进行保留
        String num=" ";
        if(randnum1==randnum2&&randnum2==randnum3){
    
    
            num="豹子";
        }
        else if(randnum1+randnum2+randnum3>9){
    
    
            num="大";
        }
        else if(randnum1+randnum2+randnum3<=9){
    
    
            num="小";
        }

        //用户通过键盘输入
        Scanner sc=new Scanner(System.in);
        System.out.println("用户进行押宝:");
        String guess=sc.next();

        //进行结果判断
        if(num.equals(guess)){
    
    
            System.out.println("用户猜对了");
        }
        else{
    
    
            System.out.println("用户猜错了");
        }

    }
}

输出的结果为:

第一个随机数为:3
第二个随机数为:4
第二个随机数为:5
用户进行押宝:
豹子
用户猜错了
第一个随机数为:2
第二个随机数为:6
第二个随机数为:1
用户进行押宝:
大
用户猜错了
第一个随机数为:3
第二个随机数为:1
第二个随机数为:1
用户进行押宝:
小
用户猜对了

猜你喜欢

转载自blog.csdn.net/qq_41537102/article/details/109647223