• 締切済み

カウントアップ

以前質問させて頂いた続きなのですがまた詰まってしまったので 知恵をお借りしたいと思います。 File Count.java public class Count { public int read(){ return 1; } public void write(int count){ (1) } } File Test.java //カウント処理 Count count = new Count(); int scount = count.read(); contribute.setAttribute("no", ""+scount); scount = scount+1; count.write(scount); Test.javaファイルにおいて変数scountを使用する際に 1~10と読み込むたびに数字を一つづつ足していくという処理を行いたいのです。 (1)の部分にソースを書くことまでは指定されており、ここまでは間違えていないと言われているのですが(1)の部分をどんな風に作成すれば良いかがわかりません。 どのように書けば良いのでしょうか?? よろしくお願いします。

  • ARCIE
  • お礼率75% (22/29)
  • Java
  • 回答数3
  • ありがとう数4

みんなの回答

回答No.3

1から10までってことは繰り返し処理するってことですよね? Count count = new Count(); →No1さんのCountクラスのように記述を修正 for ( int i = 0 ; i < 10 ; i ++ ){ int scount = count.read(); → i+1またはi=0;i<11にしてiをそのまま代入しても同じなんですが・・・ contribute.setAttribute("no", ""+scount); scount = scount+1; →いらない count.write(scount); } あと、(1)では何がしたいんですか?

ARCIE
質問者

お礼

わかりづらい質問で申し訳ありません。 やり方の指定がなくなったので、以下の方法で数字を取ることに成功しました。 File Test.java //カウント処理 Count count = new Count(); int scount = count.read(); contribute.setAttribute("no", ""+scount); scount = scount+1; count.write(scount); File Count.java public class Count { public int read(){ int result = 0; try{ BufferedReader reader = new BufferedReader(new FileReader("countlog.txt")); try{ String str = ""; str = reader.readLine(); result = Integer.parseInt(str); }finally{ reader.close(); //必ずcloseを行ってください。 } }catch(Exception e){ e.printStackTrace(); } return result; } public void write(int count){ String str = ""+count; try{ FileWriter writer = new FileWriter("countlog.txt"); try{ char[] buff = str.toCharArray(); writer.write(buff); }finally{ writer.close(); } }catch(Exception e){ e.printStackTrace(); } } } 書いてもらったソースもこれからの参考にさせていただきます。 ありがとうございました。

回答No.2

質問の内容がよくわからない。 1から10まで足し算した結果を知りたいってことですか? そうだとすればreadが毎回1を返してたらダメですよね・・・

ARCIE
質問者

補足

回答どうもです。 やりたいことは contribute.setAttribute("no", ""+scount); でscountを1回使うと xmlFILEに <contribute no=1> 2回目以降も <contribute no=2> などと書き込む数字を増やしていきたいのです。 retune 1; の部分は自分も疑問だったのですが問題ないと言われたのでそのまま使用していました。

  • mahojula
  • ベストアンサー率32% (21/65)
回答No.1

public class Test { public static void main(String[] args) { //カウント処理 Count count = new Count(); int scount = count.read(); // contribute.setAttribute("no", "" + scount); count.write(scount); } } class Count { int count = 1; int read() { return count++; } void write(int scount) { System.out.println(scount); } } あんまり 求めてるモノに 沿ってないかもしれませんが…  うちなりの ナナメ読み 勝手な解釈で 書いてみました。。             あんまり参考ならなそうですね凹

ARCIE
質問者

お礼

回答ありがとうございます。 こちらが説明下手なだけですんでorz まだまだjavaというものに対する理解度が低いので うまく求めるものを伝えることができませんでした。 書いて頂いたものは参考にさせて頂きます。

関連するQ&A

  • javaのカウントアップについて

    javaのEclipseを使っています。 カウントアップ後、表示する度に、 1, 2, 3, …と表示するプログラムを作りたいです。 プログラム例を教えて下さい。 public class Test { public static void main(String[] args) { Count count = new Count(); int scount = count.read(); count.write(scount); } } class Count { int count = 1; int read() { return count++; } void write(int scount) { System.out.println(scount); } }

  • カウントアップ

    xmlの勉強中にわからないことがでてきたので質問します xmlを使用しての掲示板の作成中なのですが 以下のようなソースを記述しました。 //カウントアップ処理 Count count = new Count(); //ノードを作成し、文字列を代入 contribute.setAttribute("no", "1"); Element titlenode= document.createElement("title"); contribute.appendChild(titlenode); titlenode.appendChild(document.createTextNode(title)); Element namenode= document.createElement("name"); contribute.appendChild(namenode); namenode.appendChild(document.createTextNode(name)); Element mailnode= document.createElement("mail"); contribute.appendChild(mailnode); mailnode.appendChild(document.createTextNode(mail)); Element hpnode= document.createElement("hp"); contribute.appendChild(hpnode); hpnode.appendChild(document.createTextNode(hp)); Element urlnode= document.createElement("url"); contribute.appendChild(urlnode); urlnode.appendChild(document.createTextNode(url)); Element textnode= document.createElement("text"); contribute.appendChild(textnode); textnode.appendChild(document.createTextNode(text)); contribute.setAttribute("no", "1"); この行の"1"の部分を1~10などのようにカウントアップさせたいのですが ネットなどで調べてもわかりません。 条件として、Countという別のクラスを作成しそちらでカウントアップしたものを上記ソースで読み込むという処理がしたいのです。 初歩的な質問で情けないのですが、よろしくお願いします。

    • 締切済み
    • XML
  • 初歩的な質問です

    public class Count { public int read(){ return 1; } public void write(int count){ for (count = 0; count < 10; count++){ } } } というソースを書いて 変数countを同パッケージ内の別クラスで読み込むには 別クラス上においてどのように書けば良いのでしょうか? Count count = New Count(); くらいはわかるんですがそこから先がわからないのです。 初歩的な質問ですがよろしくお願いします。

  • jQueryによるカウントアップ

    質問をさせてください。 <span class="1000"> <a class="2000" title="このコメントを承認しない" href="comment.php?c=327&action=unapprovecomment">承認しない</a> </span> こちらのリンクを押した時に <span class="count"> ( <span class="Approved-count">100</span> ) </span> <span class="Approved-count">100</span> こちらの数字100にページ遷移を行わずに+1を行いたいのですが それは可能でしょうか? 検索をしてみたのですが、なにやら複雑な処理が多く 単純にカウントアップを行うだけならもっと簡単にできるのではと 質問をさせて頂きました。 どなたかご教示いただけましたら幸いでございます。

  • プログラムの添削をお願いします。

    読み込んだテキストファイルを十文字ごとに改行して、別のファイルにコピーするプログラムです。 import java.io.*; public class CopyText{ public static void main(String[] args) throws IOException { FileReader in = new FileReader("inputtext.txt"); FileWriter out = new FileWriter("outputtext.txt"); int ccode, count; while ((ccode = in.read()) ! = -1){ out.write(ccode); count=count+1; if (count=10){fw.write('\n');, count=0}; } in.close(); out.close(); } } 7行目のところで、「')'がありません」「互換性のない型」というエラーが出るのですが、どう直したらいいのかがわからないのでご指導お願いします。

    • ベストアンサー
    • Java
  • Javaのカウント方法について

    お伺い致します。 CSVで取り込んだデータの抽出をしたいのですが、方法が見出せません。どの点を直せば宜しいのでしょうか。 具体的には取り込んだ郵便番号をカウントして(例:京都市,34)CSVファイルに出力するように出したいのですがカウントがうまくできません。(以下、コメントアウトしたものがありますが、今までのソースを記載します) 宜しく御願いします。 import java.io.FileReader; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.IOException; import java.io.*; public class test01 { static String fname ="26KYOUTO.CSV"; public static void main(String[] args){ if(args.length>0) fname = args[0]; try { BufferedReader reader = new BufferedReader(new FileReader(fname)); BufferedWriter pw = new BufferedWriter(new PrintWriter("orig.txt")); String line = reader.readLine(); System.out.println(line); pw.println(""); int n = 0; int count = 0; _/* while(true) { String line = reader.readLine(); if(line.equals("26101")) break; count++; } */ reader.close(); System.out.println("京都府北区=" +count ); } catch(FileNotFoundException e) { System.out.println("ファイルがありません。"); } catch(IOException e) { System.out.println("入出力エラーです。"); } } }

    • ベストアンサー
    • Java
  • 関数で整数の受け渡しについて。

    VisualC++6.0 SDI でプログラムの勉強をしています。 マルチスレッドから int型 の整数を受け渡ししたいのですが、 「'identifier' : typedef 識別子に、クラス メンバ アクセス演算子 (->) を使用しました。」 とエラーが出てしまいます。どうしたらよいでしょうか? どのような処理をしているのか抜き出しました。 見難い上に、私の理解が不十分なため必要な記述が抜けているかもしれませんが、 指摘、アドバイスなどよろしくお願いします。 //マルチスレッドの中に記述し int count の整数を受け渡す記述 //pInst は class CSerialへのポインタ for(count =0; count<3; count++){ pInst->TransmitData(count); 処理;//ここで int count を使いたい。 } // class Serial class CSerial { public: CSerial(CEvent *Event); ~CSerial(void); private: void TransmitData(int count); }; // 継承?? オーバーライド?? はっきりとは理解できていません。 void CSerial::TransmitData(int count) {//m_Eventは class Event へのポインタ  m_Event->OnPollingSend(count); } // Class Event class CEvent { public: CEvent() { } virtual ~CEvent() { } virtual void OnPollingSend(int count) = 0; }; //Class Event が書かれているファイルを#includeしています。 void CPollingDlg::OnPollingSend(int count) { マルチスレッドスタート;//すでにスタートしていたらジャンプ 処理;//ここで int count を使いたい } //ボタンはclassWizard で作りました(INT)は後から付けてしてみました。 //ボタンが押されたら呼び出されます。 ON_BN_CLICKED(ID_POLLING_SEND, OnPollingSend(INT)) // 生成されたメッセージ マップ関数 afx_msg void OnPollingSend(INT);

  • 1を0001として出力する処理

    public class Test_file { public static void main(String args[]) { for( int count = 0 ; count <= 10 ; count++) { System.out.println(count); } } } このプログラムを実行すると 0 1 2 3 4 5 6 7 8 9 10 と出力されますが、これを 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 と、連続して出力する処理を作成したいのですが、 この1桁を4桁にする処理が思い浮かばず苦戦している最中です。 自分でも考えてみたのですが、1を0001にしたり、 100を0100にする処理がどうしても思いつきません。 お手数ですが、上記のような処理ができる手立てを ご教授の程お願いします。

    • ベストアンサー
    • Java
  • 静的動的とは?

    静的とはあらかじめ決められ変わらないもの 動的とは状況に応じて変わるものとあるのですが 以下の文のstaticの部分を見る限りcount変数は変化してるので動的と違うの?と混乱してるのですが なぜこのcount変数は静的なのか説明をお願いします int main(void) { count(); count(); return 0; } int count(void) { static int count; count++; printf("%d\n", count); return 0; } よろしくお願いします

  • Java クラスを使ったソート

    Javaで隣接交換法を用いて配列dataを昇順に並び替え、出力するプログラムを作成する。 ただし、ループ処理には、int型の変数は使わず、以下のCounterクラスを使用する。 という課題が出て、とり組んでみたのですが所々よく分からないので、お力添えしていただければと思います。 課題には下記のような条件が書いてありました。 配列data={54,76,32,89,45,11,8,54,29,67}; [クラス] Counter [インスタンス変数] int型の値を保持するcount [コンストラクタ] 引数で渡された値を初期値としてインスタンス変数に設定する。 引数を省略された場合、ゼロを設定する。 [メソッド] increment 値に1加算する decrement 値に1減算する compareTo 以下の処理を行う Counterの保持している値が引数に指定された値と 等しい場合、値0を返す。 Counterの保持している値が引数に指定された値より 小さい場合、0より小さい値を返す。 Counterの保持している値が引数に指定された値より 大きい場合、0より大きい値を返す。 get Counterの保持している値を添え字として、 引数で渡された配列の要素を取得します。 set Counterの保持している値を添え字として、 第1引数で渡された配列に第2引数で渡された値を設定します。 以下組んだものです。 ---- class Counter { int count = 0; Counter(int count) { this.count = count; } Counter() { this.count = 0; } public int get(int[] data) { return this.count; } public void set(int[] data, int count) { this.count = count; } public void increment() { this.count = count + 1; } public void decrement() { this.count = count - 1; } public int compareTo() { return count; } } public class Lesson09 { public static void main(String args[]) { Counter counter = new Counter(0); int[] data = {54, 76, 32, 89, 45, 11, 8, 54, 67}; counter.get(data); counter.set(data, 0); } } ---- とりあえず、compareToとsetとgetの部分をどう記述していいのかがよく分かりません。 よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう