如题。刚学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);
}
}
|