/* 商品コードが格納されている配列(arrayCode)の内容を探索し、
* 対応する商品名を表示してください。
*
* 【ルール】
* ①探索したい値と配列の要素の値を、配列の先頭から順に比較する
* ②等しければ、探索が成功した(見つかった)ので
* 『(商品コード)の商品は、(商品名)です。』と表示して終了する
* ③最後まで探索しても一致する要素がなければ、
* 探索は不成功(見つからない)になるので
* 『(商品コード)は登録されていません。』と表示して終了する
*
* 探索クラスと表示クラスを作成して、
* ①は探索クラスで行い
* ②、③は表示クラスで行うプログラムを作成してください
*/
public class ClassAdd09{
public static void main(String[] args) {
int[] arrayCode = {102,800,201,101,283,430,181,550};
String[] arrayName = {"事務机B型","応接机","会議用机","事務机A型",
"折り畳み机","木製机","脇机","学生机"};
Tansaku subA = new Tabsaku();//探索クラスのインスタンス化
subA.Tansaku(arrayCode,arrayName);//探索メソッド呼び出し
Hyouji subB = new Hyouji();//表示クラスのインスタンス化
}
}
class Tansaku{//探索クラス作成
//商品を検索する。102なら事務机B型
//商品を検索する。800なら応接机
//・・・・・・・etc
//探索クラスで探索された値を返す
public static void Tansaku(int[] num,String[] num2){//Tansakuメソッド
class Hyouji{//表示クラスの作成
//コードがヒットしたので、例:「102の商品は、事務机Bです」と表示
//コードがヒットしなければ、「登録されていません」と表示
System.out.println( + "の商品は、" + "です");
System.out.println( + "は登録されていません");
}
ひとまず日本語で流れを書き出してみました。
そこで質問なのですが、配列の先頭から順に検索する、というやり方がいまいちわかりません。
自分でもfor文を使った配列表示や検索が凄く苦手なのは分かっているので勉強しているのですが、
未だに理解してるとは言い難い状況です。同様の理由で、以下の問題も手詰まり状態です。
/*
以下のプログラムはコマンドライン引数で複数の数字を
受け取り、int型配列arrayに受け取った値を代入して
arrayの先頭から順番に表示しています。
変換クラスと、表示クラスを作成し
①の部分を変換クラスで、
②の部分を表示クラスで行うように修正してください。
*/
class ClassAdd08{
public static void main(String[] args){
HenkanClass subA = new HenkanClass();//HenkanClassのインスタンス化
HyoujiClass subB = new HyoujiClass();//HyoujiClassのインスタンス化
subB.hyouji();//表示メソッドの呼び出し
}
}
//**************************** ① **********************************
class HenkanClass{//変換クラスを新規作成
public int henkan(int num,int[] args){//変換メソッド
int len = args.length;
int[] array = new int[len];
for(int i = 0; i < len; i++){
array[i] = Integer.parseInt(args[i]);
}
return len;
}
}
//**************************** ① **********************************
//**************************** ② **********************************
class HyoujiClass{//表示クラスを新規作成
public void hyouji(){//表示メソッド
int len = Henkan(len,array);//変換メソッドの呼び出し
System.out.println("受け取った引数:" + len + "個");
for(int i = 0; i < len; i++){
System.out.println((i + 1) + "個目の数:" + array[i]);
}
}
//**************************** ② **********************************
}
どなたかお手隙の方がいらっしゃいましたら、お知恵をお貸しください。
よろしくお願い致します。
こちらが元ネタになります。
class ClassAdd08{
public static void main(String[] args){
//**************************** ① **********************************
int len = args.length;
int[] array = new int[len];
for(int i = 0; i < len; i++){
array[i] = Integer.parseInt(args[i]);
}
//**************************** ① **********************************
//**************************** ② **********************************
System.out.println("受け取った引数:" + len + "個");
for(int i = 0; i < len; i++){
System.out.println((i + 1) + "個目の数:" + array[i]);
}
}
//**************************** ② **********************************
}
class ClassAdd08 {
public static void main(String[] args) {
//変換クラスのインスタンス化
Henkan subA = new Henkan();
//変換メソッド呼び出し
int[] array =subA.henkan(args);
//表示クラスのインスタンス化
Hyouji subB = new Hyouji();
//表示メソッドの呼び出し
subB.hyouji(array);
}
}
//変換クラス
class Henkan {
public static int henkan(String[] num) {//変換メソッド
// **************************** ① **********************************
int len = args.length;
int[] array = new int[len];
for (int i = 0; i < len; i++) {
array[i] = Integer.parseInt(args[i]);
}
return array;//値を返す
// **************************** ① **********************************
}
}
//表示クラス
class Hyouji {
public static void hyouji(int[] num) {//表示メソッド
// **************************** ② **********************************
System.out.println("受け取った引数:" + len + "個");
for (int i = 0; i < len; i++) {
System.out.println((i + 1) + "個目の数:" + array[i]);
}
// **************************** ② **********************************
}
}
ひとまず自分で書いてみたコードです。クラスの課題なので、クラスのインスタンス化をしています。