プログラミング初心者です。 学校で16進数を入力するプログラムを作れ。という課題が出ました。友達と頑張ってここまでしました。 class test{
プログラミング初心者です。 学校で16進数を入力するプログラムを作れ。という課題が出ました。友達と頑張ってここまでしました。 class test{ static int getchar(){ int ch; try{ ch=System.in.read(); if(ch=='¥r'){ ch=System.in.read(); } } catch(java.io.IOException e){ ch='¥n'; } return ch; } public static void main(String[]args){ int number; int ch; System.out.print("please input:"); number=0; ch=-getchar(); while(ch!='¥n'){ if(('0'<=ch && ch<='9')||('A'<=ch&&ch<='F')){ number=number*16; number=number+(ch-'0'); } ch=getchar(); } System.out.println("your input number is"+number); } } これだと実行した時、数字を入力(例えば64と入力したら100と出てきます。)したら正確に表示されますが、アルファベット(A〜F)を入力しても正確な数字が表示されません。 先生からのヒントとして、 15=='F'-'A'+10 と出されました。これを自分で考えて変化させてどこかの行に入れるそうです。 考えてみましたが、全く分かりませんでした。 java言語を使用しています。 ご回答よろしくお願いします。
ベストアンサー
if(('0'<=ch && ch<='9')){ number=number*16; number=number+(ch-'0'); } if(('A'<=ch&&ch<='F')){ number=number*16; number=number+(ch-'A'+10); } と分岐を分ければいいのでは Javaのことはよく知りませんが
質問者からのお礼コメント
ご回答ありがとうございます。 ご回答していただいたものを打つとうまく実行できました。ありがとうございました。 こちらの方を今回ベストアンサーとさせていただきます。
お礼日時:7/5 12:34