1

こんにちは、int x を取り、それを目的のベース int y に変換するアルゴリズムを作成しています。例 7 基数 3 = 21。

void printXBaseY(int x, int y) {

  boolean active = true; 

  while(x >= y) {
      int a = x % y;
      int b = x / y;


      String first = "" + a;
      String second = "" + b;

      String answer = "" + first + second;

  }

  String answer = "" + first + second;

  println(x + " base " + y + " is " + answer);

}

}

文字列の回答で、シンボルを見つけることができないというエラーがあります-最初に変数が見つかりません。なぜそれが見つからないのか誰でも説明できますか? 解決策を提供します。

前もって感謝します

4

7 に答える 7

3

対象外です。while ループ内で宣言しました。その後なくなりました。

これを解決するには、while ループの開始前に first と second を宣言します。

于 2013-09-27T07:01:25.413 に答える
3

これらの変数は範囲外です。

Java では、スコープは に制限されてい {}ます。

それらを一番上に移動して、さらに利用できるようにします。

void printXBaseY(int x, int y) {

          boolean active = true; 
          String first=""; //  or null
          String second=""; // or null 
          while(x >= y) {
              int a = x % y;
              int b = x / y;


               first = "" + a;
               second = "" + b;

              String answer = "" + first + second;

          }

          String answer = "" + first + second;

          System.out.println(x + " base " + y + " is " + answer);

        }

あなたは初心者かもしれません:ブロックとステートメントについてもっと読む

于 2013-09-27T07:02:29.087 に答える
2

変数「first」のスコープは、while ブロックによって制限されます。そのため、外部からアクセスすることはできません。

于 2013-09-27T07:04:52.090 に答える
0
 while(x >= y) {
     int a = x % y;
     int b = x / y;


     String first = "" + a;  // here is the problem. You declared first and second within the while loop.
     String second = "" + b;

     String answer = "" + first + second;

 } 

以下のコードを修正

while(x >= y) {
      int a = x % y;
      int b = x / y;


      String first = "" + a;
      String second = "" + b;

      String answer = "" + first + second;



  String answer = "" + first + second;

  println(x + " base " + y + " is " + answer);

 }
于 2013-09-27T07:03:13.547 に答える
0

変数firstsecondwhile ループ内で宣言されているため、その有効期間はそのループ内にバインドされています。範囲が明確でない場合は、この興味深いスライド http://classes.soe.ucsc.edu/cmps012a/Winter03-01/notes/Lecture27-4perpage.pdfをお読みください。

于 2013-09-27T07:05:51.183 に答える
0

最初と 2 番目の変数は while ループ内で宣言されます。そのため、それらのスコープは while ループの内側にあり、while ループの外側では使用できません。

void printXBaseY(int x, int y) {

  boolean active = true; 
  String first = null;
  String second = null
  while(x >= y) {
      int a = x % y;
      int b = x / y;


      first = "" + a;
      second = "" + b;

      String answer = "" + first + second;

  }

  String answer = "" + first + second;

  println(x + " base " + y + " is " + answer);

}
于 2013-09-27T07:02:46.470 に答える
0
void printXBaseY(int x, int y) {

  boolean active = true;   
 String first="";    
String second="";   
  String answer="";     

  while(x >= y) {  
      int a = x % y;  
      int b = x / y;  


       first = "" + a;
      second = "" + b;

   //  answer = "" + first + second;

  }

  answer = "" + first + second;

  println(x + " base " + y + " is " + answer);

}
于 2013-09-27T07:06:30.030 に答える