• 締切済み

booleanの戻り値について

redasurcの回答

  • redasurc
  • ベストアンサー率37% (3/8)
回答No.1

コードの真ん中辺りにある toka(TBL1, TBL2); を flg=toka(TBL1, TBL2); と書き換えてみたらどうですか?

naganusasa
質問者

お礼

お!!!! 動きました。 ありがとうございます。大変勉強になりました。

関連するQ&A

  • 二次元配列について

    二次元配列を使用して三択クイズを作ろうとしています。 画面イメージ: 問1 りんごは何色?    1.黄色    2.青色    3.赤色 答入力>3 正解。 問2 ミカンは何色?    1.オレンジ色    2.紫色    3.赤色 答入力>2 不正解。正解は1。 ----------------------------------------------- これをプログラムにしてみると、 int tbl[][] = new int[2][5]; tbl[][]={{"りんごは何色?","1.黄色","2.青色","3.赤色",3}, {"ミカンは何色?","オレンジ色","紫色","赤色",1} }; for(int i=0;i < 1 ;i++) { System.out.println(tbl[i][0]); System.out.println(tbl[i][1]); System.out.println(tbl[i][2]); System.out.println(tbl[i][3]); System.out.print("答入力ー>"); String str = br.readLine(); int name = Integer.parseInt(str); if(name == tbl[i][4]) { System.out.print("正解です。"); } else { System.out.print("不正解 答えは"+ tbl.length[i][4] +"です。"); } } ------------------------------------------------ for文とlengthを使用するという条件を踏まえて作ったのですが、エラーとして文ではありませんとでてさきに進めない状況です。

    • ベストアンサー
    • Java
  • クラスのフィールドの値を配列に代入する方法

    フィールドの値を代入したいのですが、 java.lang.ArrayIndexOutOfBoundsException というエラーが出てしまい、どうすればいいのかわかりません。 どのように対処すればいいのでしょうか? class Car { String carname; int height; int width; int length; } class public static void main(String[] args) throw IOException { Car car[]; car = new Car[5]; System.out.println("車の情報を入力してください。"); BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in); for(int i=0; i<5; i++){ car[i] = new Car(); System.out.println(i+1 + "台目の車の名前を入力してください。"); String str1 = br1.readLine(); System.out.println("車の高さを入力してください。"); String str2 = br1.readLine(); System.out.println("車の幅を入力してください。"); String str3 = br1.readLine(); System.out.println("車の長さを入力してください。"); String str4 = br1.readLine(); int h1 = Integer.parseInt(str2); int w1 = Integer.parseInt(str3); int l1 = Integer.parseInt(str4); car[i].carname = str1; car[i].height = h1; car[i].weith =w1; car[i].length =l1; } for(int i=0; i<5; i++){ int c_h[] = new int[5]; c_h[i] = car[i].height; } } よろしくお願いします。

    • ベストアンサー
    • Java
  • 変数booleanの扱い方

    下記のコードでコンパイルしたところ、出現 int 互換性のない型 要求:boolean boolean bl = 0 ; とエラーが出ました。コード上でまず、bl = 0 と0が入るのがまず分からないのと、trueとfalseを入れ換えているのがわかりません。すみませんが、かなりわかってないので、出来るだけ詳しく説明お願いします。 boolean bl = 0; for(int i=0; i<5; i++) for(int j=0; j<5; j++) if(bl == false){ System.out.print('*'); bl = true; } else{ System.out.print('-'); bl = false; } } お決まりのクラス宣言などのコードは省きました。

    • ベストアンサー
    • Java
  • javaの二次元配列について質問です

    配列上にあるただ一つの1を入力に応じて移動させるプログラムを作っています。 たとえば0が入力されたら 0, 0, 0 0, 1, 0 0, 1, 0 → 0, 0, 0 0, 0, 0 0, 0, 0 という風に移動させ、端に行ったら移動できないようにしたいです。 今書いたプログラムだと、最初にある1が残ったままになってしまいます。 int[] p = {-1, -1}; int[][] im = new int[3][3]; Scanner scn = new Scanner(System.in); for (int i = 0; i < p.length; i++) { p[i] = 1; } im[p[0]][p[1]] = 1; for (int i = 0; i < im.length; i++) { for (int j = 0; j < im[i].length; j++) { System.out.print(im[i][j] + ","); } System.out.println(); } int n = 0; n = scn.nextInt(); if (n == 0) { p[0] -= 1; } else if (n == 1) { p[1] += 1; } else if (n == 2) { p[0] += 1; } else if (n == 3) { p[1] -= 1; } im[p[0]][p[1]] = 1; for (int i = 0; i < im.length; i++) { for (int j = 0; j < im[i].length; j++) { System.out.print(im[i][j] + ","); } System.out.println(); }

  • CSVファイルを多次元配列に格納する

    CSVファイルをopenCSVを読み込んでその行と列の要素数の多次元配列を作りその配列にデータを格納したいです。 しかし、データが格納できません。2回目の格納するためにwhileから何かおかしいのではないかと思っています。 なにかわかる方、アドバイスが欲しいです。 public class ReadCSV { public static void main(String[] args){ try{ CSVReader reader = new CSVReader( new FileReader("/home/masa/Desktop/WameiSample.csv")); //配列の宣言 String[] nextLine; //データを配列に入れる要素数を見る int j = 0; nextLine = reader.readNext(); int k = nextLine.length; System.out.println("列数[i]"+k); System.out.println("nextLine"+nextLine); while((nextLine = reader.readNext()) != null){ for (int i=0; i<nextLine.length; i++){ //System.out.print(nextLine[i] + "|" + i + "|"); } //System.out.println(); j++; } System.out.println("行数[j]"+j); //記憶する配列 String[][] Wamei = new String[k][j]; System.out.println("きてるよ"); //データを配列に格納していく int x = 0; while((nextLine = reader.readNext()) != null){ System.out.println("きてるよ");  <---こっから、表示してくれない. for (int y=0; y<nextLine.length; y++){ Wamei[x][y] = nextLine[y]; //多次元配列の要素を表示する System.out.print(Wamei[x][y]+"Wamei"+x+y); } System.out.println(); x++; } } catch (IOException e) { e.printStackTrace(); } } }

    • ベストアンサー
    • Java
  • 配列のインデックス番号を返したいが

    インデックス番号を返したい x[0]=1 x[1]=2 x[2]=3 x[3]=3 x[4]=5 の場合で探す(返す)値を3とした場合⇒2,3と値が返るようにしたい import java.util.*; class Test7_23 { static int[] arraySrchIdx(int[] a,int x){ int idx = 0; for(int i=0;i<a.length;i++){ //A if(a[i]==x){ a[i] = i; idx++; } else{ a[i] = 0; } } for(int i=0;i<a.length;i++) //B System.out.println(a[i]); int[] b = new int[idx]; for(int i=0;i<a.length;i++){ if(a[i] != 0) for(int j=0;j<idx;j++) b[j]=a[i]; } for(int i=0;i<idx;i++) System.out.println("b["+i+"]="+b[i]); return b; } public static void main(String[]args){ Scanner std = new Scanner(System.in); System.out.print("配列の要素数は:"); int n = std.nextInt(); int[] x = new int[n]; for(int i=0;i<n;i++){ System.out.print("x["+i+"]="); x[i] = std.nextInt(); } System.out.print("探す値:"); int a = std.nextInt(); int[] b = arraySrchIdx(x,a); for(int i=0;i<b.length;i++){ System.out.println(b[i]); } } }

  • 独自クラスをVectorに格納してindexOfで検索する方法

    ewuals(myclass)、ewuals(int)とhash()を実装した、自分で作成したクラスがあります。 そのクラスをVectorに格納して、indexOf()やlastIndeOf()で検索しようとしていますが、-1が返されます。 for()ループとequals()を使用して自分で検索すると、意図した値が帰ってくるのですが。どこがいけないのでしょうか? ===>java -version java version "1.6.0_11" Java(TM) SE Runtime Environment (build 1.6.0_11-b03) Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing) import java.util.Vector; ===>type equaltest.java class equaltest { public static void main(String args[]) { myclass myc[] = new myclass[8]; myc[0] = new myclass(false, 10 , 3); myc[1] = new myclass(false, 10 , 4); myc[2] = new myclass(false, 20 , 3); myc[3] = new myclass(false, 20 , 4); myc[4] = new myclass(true, 10 , 3); myc[5] = new myclass(true, 10 , 4); myc[6] = new myclass(true, 20 , 3); myc[7] = new myclass(true, 20 , 4); //Vectorに追加 Vector<myclass> myVec = new Vector<myclass>(); for (int lp1 = 0; lp1<myc.length;lp1++){ myVec.add(myc[lp1]); } //Vectorの中身を表示 System.out.println(myVec.toString()); System.out.println("------------"); System.out.println("Vector.indexOfの返す値は・・・"); System.out.println("10\t:"+myVec.indexOf(10)); System.out.println("20\t:"+myVec.indexOf(20)); System.out.println("3\t:"+myVec.indexOf(3)); System.out.println("4\t:"+myVec.indexOf(4)); myclass mytmp = new myclass(true, 20 , 4); //mytmpの中身を表示 System.out.println(mytmp.toString()); System.out.println("mytmp\t:"+myVec.indexOf(mytmp)); System.out.println("自分でequals比較すると・・・"); System.out.println("mytmp?2\t:"+mytmp.equals(myc[2])); System.out.println("mytmp?3\t:"+mytmp.equals(myc[3])); System.out.println("mytmp?4\t:"+mytmp.equals(myc[4])); System.out.println("mytmp(10):"+mytmp.equals(10)); System.out.println("mytmp(20):"+mytmp.equals(20)); System.out.print("自分でVectorを検索すると・・・["); for (int lp1 = 0; lp1<=myVec.size();lp1++){ if(lp1 == myVec.size()){ System.out.println("-1(not found)]"); break; } if(mytmp.equals((myclass)(myVec.elementAt(lp1))) == true){ System.out.println("" + lp1 + "]"); break; } } } } ===>type myclass.java public class myclass{ boolean flg; int valurT; int valurF; // myclass(){ flg = false; valurT = 20; valurF = 5; } myclass(boolean af, int avalurT, int avalurF){ flg = af; valurT = avalurT; valurF = avalurF; } // public boolean equals(int myArg){ if(flg){ return (valurT == myArg); }else{ return (valurF == myArg); } } // public boolean equals(myclass argmycls){ if(flg){ return (valurT == argmycls.valurT); }else{ return (valurF == argmycls.valurF); } } public String toString(){ return "[flg:"+flg+" valurT:"+valurT+" valurF:"+valurF+"]"; } public int hashCode(){ if(flg){ return (valurT); }else{ return (valurF); } } }

    • ベストアンサー
    • Java
  • 入力された入力値と最大値、最小値を表示させるプログラムで、最大値と最小

    入力された入力値と最大値、最小値を表示させるプログラムで、最大値と最小値のプログラムを下記に作成してみたら最小値が0になりました。そして、もう一つ繰り返し文を作ってみたら、最大値・最小値がうまく表示されました。この違いはどうしてですか?教えてください。 import java.io.*; class Hairetu1 { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("データはいくつですか?"); String str = br.readLine(); int num = Integer.parseInt(str); int a[]=new int[num]; int i; int max=0; int min=a[0]; for(i=0; i<a.length; i++){ System.out.print((i+1)+"番目は?"); str = br.readLine(); int tmp = Integer.parseInt(str); a[i] = tmp; if(max<tmp){ max=tmp; } if(min>tmp){ min=tmp; } } System.out.println("入力した値は"+test.length); System.out.println("最大は"+max); System.out.println("最小は"+min); } }

    • ベストアンサー
    • Java
  • フィボナッチ数列の配列について

    public class Fibonacci { public static void main(String[] args) { int [] fibAray = new int [20]; //フィボナッチ数列用の配列 fibAray[4] = 3; fibAray[1] = 1; for (int i = 0; i < fibAray.length; i++) { fibAray[i] = i + 1; } for (int i = 0; i < fibAray.length; i++) { System.out.println( "第" + (i + 1) + "頁は" + 3); } } } フィボナッチ数列の第20項までを配列にし、それらを"第4項は3"のように表示する。 という問題で作ったプログラムですが1項~20項まで3と表示されます。 これで合ってるのでしょうか?

    • ベストアンサー
    • Java
  • 配列のコピーをして値を返したいが

    //配列のコピーをして値を返したい import java.util.*; public class Test7_22 { static int[] arrayClone(int[] a){ int[] b = new int[a.length]; for(int i =0;i>a.length;i++) b[i] = a[i];//ここで代入されるはず return b; } public static void main(String[]args){ Scanner std = new Scanner(System.in); System.out.print("要素数:"); int n = std.nextInt(); int[] a = new int[n]; for(int i=0;i<n;i++){ System.out.print("a["+i+"]="); a[i] = std.nextInt(); } int[] x = arrayClone(a); for(int i=0;i<a.length;i++) System.out.println("x["+i+"]="+x[i]); } } //コンパイルするとb[0] = 0になる

    • ベストアンサー
    • Java