Javaで文字列メソッドを返しますか?

nccows

私はプログラミングクラスを始めたばかりですが、メソッドの操作を開始するこの時点まで、これの多くは私にとって理にかなっており、「静的」、「無効」を完全に理解しているとは言えません。および「return」ステートメント。

特にこの課題については、すべて理解できたと思いましたが、別のメソッドから明確に返しているのに、mainメソッドの行に「シンボルヒストグラムが見つかりません」と表示されています。誰か私を助けることができますか?

割り当て:「プログラムを作成する際にヒストグラムが頻繁に必要になることがあるので、このプログラムでプログラム310a2ヒストグラムを使用することにします。このプログラムに追加するか、クラスとして使用できます。クラス(またはメソッド)も作成します。 )さまざまな範囲で乱数を生成します。アスタリスクで異なる値(1、100、または1000単位)を表すこともできます。また、アスタリスク以外の文字($など)を使用して単位を表すこともできます。プログラムのさまざまな能力を説明するのに十分な回数、プログラムを実行します。

必要なステートメント:出力、ループ制御、意思決定、クラス(オプション)、メソッド。

サンプル出力:

10月の売上高

日日売上グラフ

2 37081 *************************************

3 28355 ****************************

4 39158 ***************************************

5 24904 ************************

6 28879 ****************************

7 13348 ************* "

これが私が持っているものです:

import java.util.Random;

public class prog310t
{ 
  public static int randInt(int randomNum) //determines the random value for the day
  {   
    Random rand = new Random();

    randomNum = rand.nextInt((40000 - 1000) + 1) + 10000;

    return randomNum;
  }

  public String histogram (int randomNum) //creates the histogram string
  {
    String histogram = "";
    int roundedRandom = (randomNum/1000);
    int ceiling = roundedRandom;
    for (int k = 1; k < ceiling; k++)
    {
      histogram = histogram + "*";
    }

    return histogram;   
  }

  public void main(String[] Args)
  {
    System.out.println("Sales for October\n");

    System.out.println("Day        Daily          Sales Graph");

    for (int k = 2; k < 31; k++)
    {
      if (k == 8 || k == 15 || k == 22 || k == 29)
      {
        k++;
      }

      System.out.print(k + "         ");

      int randomNum = 0;

      randInt(randomNum);

      System.out.print(randomNum + "       ");

      histogram (randomNum);

      System.out.print(histogram + "\n");
    }
  }
}

編集:皆さんのおかげで、静的が何を意味するのかがわかりました。今、私は新しい問題を抱えています。プログラムは実行されますが、ヒストグラムは空として返されます。誰かが私に理由を理解するのを手伝ってもらえますか?新しいコード:

import java.util.Random;

public class prog310t
{ 
  public static int randInt(int randomNum) //determines the random value for the day
  {   
    Random rand = new Random();

    randomNum = rand.nextInt((40000 - 1000) + 1) + 10000;

    return randomNum;
  }

  public static String histogram (int marketValue) //creates the histogram string
  {
    String histogram = "";
    int roundedRandom = (marketValue/1000);
    int ceiling = roundedRandom;
    for (int k = 1; k < ceiling; k++)
    {
      histogram = histogram + "*";
    }

    return histogram;   
  }

  public static void main(String[] Args)
  {
    System.out.println("Sales for October\n");

    System.out.println("Day        Daily          Sales Graph");

    for (int k = 2; k < 31; k++)
    {
      if (k == 8 || k == 15 || k == 22 || k == 29)
      {
        k++;
      }

      System.out.print(k + "         ");

      int randomNum = 0;

      int marketValue = randInt(randomNum);

      System.out.print(marketValue + "       ");

      String newHistogram = histogram (randomNum);

      System.out.print(newHistogram + "\n");
    }
  }


}
Mshnik

あなたの問題は理解していないことに根ざしているというのは正しいですstaticこれには多くのリソースがありますが、ここでは、何かがクラスにstatic属しているのに対し、静的ではないものは特定のインスタンスに属していると言えば十分ですつまり、

public class A{
    public static int b;

    public int x;
    public int doStuff(){
        return x;
    }

    public static void main(String[] args){
        System.out.println(b); //Valid. Who's b? A (the class we are in)'s b.
        System.out.println(x); //Error. Who's x? no instance provided, so we don't know.
        doStuff(); //Error. Who are we calling doStuff() on? Which instance?

        A a = new A();
        System.out.println(a.x); //Valid. Who's x? a (an instance of A)'s x.
    }
}

あなたのメソッドhistogramはそうstaticはないので、それを呼び出すためのインスタンスが必要です。ただし、インスタンスは必要ありません。メソッドを静的にするだけです。

に変更public String histogram(int randomNum)public static String histogram(int randomNum)ます。

これで、回線histogram(randomNum);が有効になります。ただし、ここで定義されているのは変数ではなく関数であるSystem.out.print(histogram + "\n");ため、でエラーが発生しhistogramます。これはreturnステートメントに関連しています。何かがreturn x(の任意の値に対してx言うとき、それは現在のメソッド呼び出しを終了し、メソッドを呼び出しxた人に与えることを言っています

たとえば、式を考えてみましょう2 + 3あなたが言うならばint x = 2 + 3、あなたは後でx価値があること期待するでしょう5ここで、方法について考えてみましょう。

public static int plus(int a, int b){
    return a + b;
}

そして、ステートメント:int x = plus(2, 3);ここでも同じですが、後でx価値があると期待しています5計算が行われ、(タイプのintその値を待機している人は誰でもその値を受け取って使用しますが、その代わりにそのタイプの単一の値が使用されます。例えば:

int x = plus(plus(1,2),plus(3,plus(4,1));->x値は11です。

例に戻ります。から返される文字列値に変数を割り当てる必要がありますhistogram(randomNum);

に変更histogram(randomNum)String s = histogram(randomNum)ます。

これですべてコンパイルされますが、最後の障害になります。それは実行されません。これは、実行可能なmainメソッドが静的である必要があるためです。したがって、mainメソッドを変更して署名を付けます。

public static void main(String[] args){...}

次に、緑色のボタンを押します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javaで文字列メソッドを返しますか?

分類Dev

なぜjava文字列メソッドは文字列としてnullを返すのですか?

分類Dev

Javaを使用してメソッドから部分文字列を返す

分類Dev

splitメソッドがまだ文字列を返すのはなぜですか

分類Dev

ReadExisting()メソッドは解析不可能な文字列を返しますか?

分類Dev

getText()メソッドは空の文字列を返します

分類Dev

新しいスレッドでメソッドを呼び出します(文字列からメソッド名)?

分類Dev

java:メソッドを介して文字列の配列から文字列値を返そうとしています

分類Dev

文字列contains()メソッドは、文字列が一致している場合でもfalseを返します

分類Dev

ExecuteBatchメソッドは、Javaで値-2の配列を返します

分類Dev

Java String split()メソッドは、予期しない長さの文字列配列を返します

分類Dev

配列の `each`メソッドでnilを返します

分類Dev

ループを使用して文字列を返すJavaで静的メソッドを作成する

分類Dev

文字列メソッドJavaの長さを取得します

分類Dev

Java:voidメソッドは値を返しますか?

分類Dev

Javaのメソッドからint値を返します

分類Dev

nullを返す文字列メソッド

分類Dev

文字列値を返すメソッド

分類Dev

文字列プールがメソッドから値を返す場合には動作しますか?

分類Dev

返された文字列を使用してメソッドを呼び出しますか?

分類Dev

メソッドをパラメーターとして使用するメソッドから文字列を返します

分類Dev

大きな文字列を取得してInputStreamを返すutilクラス/メソッドはありますか?

分類Dev

大きな文字列を取得してInputStreamを返すutilクラス/メソッドはありますか?

分類Dev

.find()メソッドを使用すると、mongodbはドキュメントを配列で返しますか?

分類Dev

文字列メソッドで単語を数えますか?

分類Dev

文字列を返すメソッドですが、string []として割り当てられます

分類Dev

phpunitモックはnullを返しますが、元のメソッドは文字列を返します

分類Dev

Java文字列とメソッドの戻り値を出力するとき、メソッドが最初に出力を返すのはなぜですか?

分類Dev

Javaのこのメソッドでスペースが埋め込まれた文字列を返す方法

Related 関連記事

  1. 1

    Javaで文字列メソッドを返しますか?

  2. 2

    なぜjava文字列メソッドは文字列としてnullを返すのですか?

  3. 3

    Javaを使用してメソッドから部分文字列を返す

  4. 4

    splitメソッドがまだ文字列を返すのはなぜですか

  5. 5

    ReadExisting()メソッドは解析不可能な文字列を返しますか?

  6. 6

    getText()メソッドは空の文字列を返します

  7. 7

    新しいスレッドでメソッドを呼び出します(文字列からメソッド名)?

  8. 8

    java:メソッドを介して文字列の配列から文字列値を返そうとしています

  9. 9

    文字列contains()メソッドは、文字列が一致している場合でもfalseを返します

  10. 10

    ExecuteBatchメソッドは、Javaで値-2の配列を返します

  11. 11

    Java String split()メソッドは、予期しない長さの文字列配列を返します

  12. 12

    配列の `each`メソッドでnilを返します

  13. 13

    ループを使用して文字列を返すJavaで静的メソッドを作成する

  14. 14

    文字列メソッドJavaの長さを取得します

  15. 15

    Java:voidメソッドは値を返しますか?

  16. 16

    Javaのメソッドからint値を返します

  17. 17

    nullを返す文字列メソッド

  18. 18

    文字列値を返すメソッド

  19. 19

    文字列プールがメソッドから値を返す場合には動作しますか?

  20. 20

    返された文字列を使用してメソッドを呼び出しますか?

  21. 21

    メソッドをパラメーターとして使用するメソッドから文字列を返します

  22. 22

    大きな文字列を取得してInputStreamを返すutilクラス/メソッドはありますか?

  23. 23

    大きな文字列を取得してInputStreamを返すutilクラス/メソッドはありますか?

  24. 24

    .find()メソッドを使用すると、mongodbはドキュメントを配列で返しますか?

  25. 25

    文字列メソッドで単語を数えますか?

  26. 26

    文字列を返すメソッドですが、string []として割り当てられます

  27. 27

    phpunitモックはnullを返しますが、元のメソッドは文字列を返します

  28. 28

    Java文字列とメソッドの戻り値を出力するとき、メソッドが最初に出力を返すのはなぜですか?

  29. 29

    Javaのこのメソッドでスペースが埋め込まれた文字列を返す方法

ホットタグ

アーカイブ