#[環境]
Java version 16.0.1
VS Code
Mac OS Big Surの環境です。
java -version
java version "16.0.1" 2021-04-20
Java(TM) SE Runtime Environment (build 16.0.1+9-24)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)
MacBook:09_MinutesToYearsandDayCalculator $
#[エラー]
エラーメッセージはでないのですが、出てくる結果が期待しているものと違います。
[学習状況]
progateを3巡、ドットインストール1巡、スッキリJavaの本を8割読みました。現在、UdemyのJava Programming Masterclass for Software Developersというコースで演習問題に取り組んでいます
この問題はUdemyでの演習18番目なので、まったくの初めてというわけではありません。
まだまだ初心者ですが真面目に取り組んでいるので、何卒、よろしくお願いします。
#[演習問題の内容]
同じ数が入っているかどうか調べよう!
hasShareddigitというメソッドを作りましょう。このメソッドはタイプint の引数が二つあります。
それらは10から99の間の数です。10、99は含みます。もしこの外の数ならfalseです。
(23,52)なら2を共通にもっているのでtrue
(45,67)ならなにも共通にもっていないのでfalse
#[わからない事]
(12,34)など、共通の数がないようにしても、「同じ数が入っています」と表示されます。
模範回答ほどすっきり書けていませんが、自分のコードも同じことをやっていると思います。
なにが、いけないのか教えていただけないでしょうか?
#[自分コード]
java
1public class SharedDigit{ 2 public static boolean hasSharedDigit(int n1, int n2){ 3 4 if(n1<10 || n2<10 || n1 >99 || n2>99){ 5 return false; 6 } 7 int n1_1 = n1 % 10; // 38 →8 8→8 8 int n1_2 = n1 / 10 ; // 38 →3 8→0 9 int n2_1 = n1 % 10;// 38 →8 8→8 10 int n2_2 = n1 / 10;// 38 →3 8→0 11 if ( n1_1==n2_1 || n1_1==n2_2 || n1_2 ==n2_1 || n1_2== n2_2 ) { 12 return true; 13 } else { 14 return false; 15 } 16 } 17} 18
java
1public class Main { 2 public static void main(String[] args) { 3 4 boolean A = SharedDigit.hasSharedDigit(12, 34); 5 if(A==true){ 6 System.out.println("同じ数が入っている。"); 7 } else { 8 System.out.println("かぶっていない。"); 9 } 10 11 } 12} 13
#[ネットで見つけた模範回答コード]
java
1public static boolean hasSharedDigit(int x,int y) { 2 if((x > 99) || (x < 10) || (y > 99) || (y < 10)) { 3 return false; 4 }else { 5 return((x/10 == y/10)||(x/10 == y % 10)||(y/10 == x % 10)||(x%10 == y%10)); 6 } 7 }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。