java之流程控制习题

java之流程控制习题,第1张

1. 将学生的学习成绩按不同的分数段分为优、良、中、及和不及格五个等级,从键盘上输入一个0~100的成绩,输出相应的等级。要求用switch语句实现。

switch的入口由case决定,出口由break决定

 System.out.println("请输入学生成绩:");
        Scanner cin = new Scanner(System.in);
        double grade;
        do {
            grade = cin.nextDouble();
        } while (grade >= 100);//输入成绩大于100分时重新输入
        /*
         *100-90:优秀
         * 90-80:良
         * 80-70:中
         * 70-60:及格
         * 60-0:不及格
         * */
        switch ((int)(grade / 10)) {
            case 1:
            case 2:
            case 3:
            case 4:
            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("优秀");
                break;
        }
2. 设学生的学习成绩按如下的分数段评定为四个等级:85~100为A;70~84为B;60~69为C;0~59为D。从键盘上输入一个0~100的成绩,要求用switch语句根据成绩,评定并输出相应的等级
 System.out.println("请输入学生成绩:");
        Scanner cin = new Scanner(System.in);
        double grade;
        do {
            grade = cin.nextDouble();
        } while (grade >= 100);//输入成绩大于100分时重新输入
        /*
         * 85-100:A
         * 70-84:B
         * 60-69:C
         * 00-59:D
         * */
        switch ((int)(grade / 10)) {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("D");
                break;
            case 6:
                System.out.println("C");
                break;
            case 7:
                System.out.println("B");
                break;
            case 8:
                if(grade<85)
                    System.out.println("B");
                else
                    System.out.println("A");
                break;
        }
3. 编写一个Java应用程序,从键盘输一个1~100之间的整数,然后判断该数是否既可以被3整除又可被7整除的数。
public static void main(String[] args) throws IOException {
        // write your code here
        System.out.println("请输入一个整数:");
        Scanner cin = new Scanner(System.in);
        int num;
        do {
           num=cin.nextInt();
        } while (num > 100);

        if(num%7==0&&num%3==0)
            System.out.println("该数符合能被7和3同时整除");
        else
            System.out.println("该数不能同时被3和7同时整除");
    }
4. 编写一个Java应用程序,在键盘上输入数n,计算并输出1!+2!+…+n!的结果。
public static void main(String[] args) throws IOException {
        // write your code here
        System.out.println("请输入一个数:");
        int n,x=0,i=1,j=1,sum=0;
        Scanner cin=new Scanner(System.in);
        n=cin.nextInt();
        do{
            x++;
            i*=j++;//计算单个阶乘值
            sum+=i;//将阶乘数的和全部相加
        }while (x<n);
        System.out.println("sum="+sum);
    }
5.水仙花数是指其个位、十位和百位三个数字的立方和等于这个三位数本身,求出所有的水仙花数.
public static void main(String[] args) throws IOException {
        // write your code here
        System.out.println("输出所有的水仙花数:");
        for(int i=100;i<1000;i++)
        {
            int a=i%10;//个位
            int b=i/10%10;//十位
            int c=i/10/10;//百位
            if(a*a*a+b*b*b+c*c*c==i)
                System.out.println(i);
        }
    }

输出所有的水仙花数:
153
370
371
407
6.从键盘输入一个整数,判断该数是否是完全数。完全数是指其所有因数(包括1但不包括其自身)的和等于该数自身的数。例如,28=1+2+4+7+14就是一个完全数。
public static void main(String[] args) throws IOException {
        // write your code here
        System.out.println("请输入一个数:");
        int num;
        Scanner cin=new Scanner(System.in);
        num=cin.nextInt();
        int sum=0;
        for(int i=1;i<num;i++)
        {
            if(num%i==0)//i能被num整除
                sum+=i;//因数相加
        }
        if(sum==num)
            System.out.println("是完全数");
        else
            System.out.println("非完全数");
    }


请输入一个数:
12
非完全数

7.计算并输出一个整数各位数字之和。例如,5423的各位数字之和为5+4+2+3
public static void main(String[] args) throws IOException {
        // write your code here
        System.out.println("请输入一个数:");
        Scanner cin=new Scanner(System.in);
        int num=cin.nextInt();
        int sum=0;
        do{
            sum+=num%10;//将num的每个位上的数字相加
            num=num/10;//将num去位
        }while (num%10!=num);//当num去位到只剩开头的数字的时候才停止
        System.out.println("sum="+sum+",num="+num+".和="+(sum+num));//这里要是不用括号括起来,会变成字符串相加
    }



请输入一个数:
12345
sum=14,num=1.=15

进程完成,退出码 0

8.将字符串按照小数点进行分割的 *** 作!!

split()方法是将指定字符串按某指定的分隔符进行拆分,拆分将会形成一个字符串的数组并返回;

split(“\.”)[0] 是一种缩写形式,把它拆开来看实际就是,先用split(“\.”)方法将字符串以" . “开割形成一个字符串数组,然后再通过索引[0]取出所得数组中的第一个元素的值;
如上方代码演示 name.split(”\.“)[0] , name.split(”\.")[1] 根据打印结果,显然是分别取出分割开后字符串数组的第 0 位 与第 1 位;

原文链接:https://blog.csdn.net/weixin_43970743/article/details/103868538

将浮点数进行分割成整数部分和小数部分,如果强制转换会丢失精准度。可以采用将浮点数当做字符串输入,然后语义切割的方法分别输出。
 public static void main(String[] args) throws IOException {
        // write your code here
        System.out.println("请输入一个数:");
        BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
        String num=buf.readLine();
        System.out.println("整数部分="+num.split("\.")[0]);
        System.out.println("小数部分="+Integer.parseInt(num.split("\.")[1]));
        //用Integer.parseInt将小数部分的字符串给转成int形式
    }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/922275.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存