A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题。刚学3天 感觉脑细胞不够用的了。while循环用的不太好  看着感觉好难受,大神帮忙改改
import java.util.Scanner;
class  jinzhizhuanhuan
{
        public static void main(String[] args)
        {
                Scanner sc = new Scanner(System.in);
                System.out.println("输入需要的进制转换"+" 2"+" 8"+" 16"+"   按'0'呼出本菜单   按“1”结束");
                int score = sc.nextInt();
                KL:while (0==0)                                 //这个while循环 实现了 连续输入 和 换进制的功能
                {
                        int xxx  ;
                        if (score ==0)                         //这个变量就是需要的进制
                    {
                                System.out.println("输入需要的进制转换"+" 2"+" 8"+" 16"+"   按'0'呼出本菜单   按“1”结束");
                                score = sc.nextInt();
                                continue KL;
                    }               
                        else if (score == 2)
                        {
                                System.out.println("请输入要转换的数...");
                                xxx = sc.nextInt();           //这个变量的作用  是 需要转换的数 作为zhuan这个方法的参数
                                score=(xxx==0)?0:score ;
                                zhuan2(xxx);
                                continue KL;
                        }
                        else if (score == 8)
                        {
                                System.out.println("请输入要转换的数...");
                                xxx = sc.nextInt();
                                score=(xxx==0)?0:score ;
                                zhuan8(xxx);
                                continue KL;
                        }
                        else if (score ==16)
                        {
                                System.out.println("请输入要转换的数...");
                                xxx = sc.nextInt();
                                score=(xxx==0)?0:score ;
                                zhuan16(xxx);
                                continue KL;
                        }
                        else if(score == 1)
                        {
                                break;
                        }
                        else
                        {
                                System.out.println("输入有误,请重新输入");
                            score = sc.nextInt();
                            continue KL;
                        }
                }
        }                                                            //未知数,&的数,》的数          这个函数是实现转换功能   用的&运算
        public static void zhuanHuan(int x,int y,int z)
        {
                char[] biao     = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};       //这个数组是一个“表格”
                char[] shuZu    = new char[32];                       //这个数组是用来存&后得出来的数
                int    jiaoBiao = shuZu.length;
                while (x!=0)
                {
                        int temp = x&y;
                        shuZu[--jiaoBiao] = biao[temp];
                        x=x>>>z;
                }
       
                for (int e = jiaoBiao;e<shuZu.length ;e++ )
                {
                        System.out.print(shuZu[e]);
                }
                System.out.println();
        }
       
       
       
        public static void zhuan8(int x)
                {       
                zhuanHuan(x,7,3);
                }
        public static void zhuan2(int x)
                {   
                zhuanHuan(x,1,1);
                }
        public static void zhuan16(int x)
                {       
                zhuanHuan(x,15,4);
                }
       
}

评分

参与人数 2黑马币 +31 收起 理由
Kelvinhu + 20 神马都是浮云
328802027 + 11

查看全部评分

1 个回复

正序浏览
必须得自己顶顶才会有人恢复
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马