黑马程序员技术交流社区

标题: 查表法的容错机制,十进制转二进制,十六进制数 [打印本页]

作者: wangmiaosen    时间: 2015-12-20 23:16
标题: 查表法的容错机制,十进制转二进制,十六进制数
1)课堂上的查表法很简单,没有容错机制,我写的这个程序有容错机制,输入一到七之外的数字,就会提醒你输入正确数字,代码如下:
import java.util.Scanner;
class Demo {
        public static void main(String[] args) {
                char []arr = {' ','一','二','三','四','五','六','日' };
                Scanner sc = new Scanner(System.in);
                while (true){
                        System.out.println("请输入一个一到七之间的数字");
                int a = sc.nextInt();
                if (a>=1 && a <=7){
                        System.out.println("对应的星期是"+arr[a]);
                        break;
                }
                if (a <=1 ||a >=7 ){
                        System.out.println("请输入正确的数字");
                }continue;
                }
               
               
        }
}
提示完之后continue的作用很关键,进入下次循环。
2)十进制转二进制:
class Fdemo
{
        public static void main(String[] args)
        {
                toBin(6);

        }
        public static void toBin(int num)
        {
                StringBuffer sb=new StringBuffer();
                while(num>0)
                {
                        sb.append(num%2);    //StringBuffer是一个容器,装求模于二的余数
                        num/=2;                       //继续除二
                       

                }
                        System.out.println(sb.reverse()); //将收集来的余数反转。
        }
}
十进制转十六进制,区别只有一个,超过十的余数儿,强转成字符,用一个if语句判断,代码如下,
class Demo
{
        public static void main(String[] args)
        {
                toHex(60);

        }
        public static void toHex(int num)
        {
                StringBuffer sb=new StringBuffer();
                while(num>0)
                {
                        int temp = num&15;
                        if (temp >9){
                                char ch = (char)(temp - 10 +'A');
                                sb.append(ch);
                        }else {
                                sb.append(temp);
                        }
                       
                        num = num >>>4;
                       

                }
                        System.out.println(sb.reverse());
        }
}
交流QQ,564626316




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2