0

誰かが私のコードを見てください。リクエストしたアーティストのチャート順位をユーザーに与えるプログラムです。うまくいきません。また、ifステートメントを使用する必要があると言ったwhileループを使用しています。誰かが私にこれを説明し、それを変更する方法を教えてくれませんか. 私はこれに非常に慣れておらず、ここが私のコードであることをよく理解していません

import java.util.*;

public class chartPosition
{
public static void main (String [] args)
{


    System.out.println("Which artist would you like?");
    String [] chart = { "Rihanna", "Cheryl Cole", "Alexis Jordan", "Katy Perry", "Bruno Mars", "Cee Lo Green",
                                 "Mike Posner", "Nelly", "Duck Sauce", "The Saturdays"};

    String entry = "";
    Scanner kb = new Scanner (System.in);

    entry = kb.nextLine();
    find (entry, chart);
 }

public static void find (String entry,String [] chart) {

int location = -1 ;
for (int i=0;i<chart.length;)
{
    while (entry.equalsIgnoreCase( chart[i])) 

    {
        System.out.println( chart + "is at position " + (i+1) + ".");
        location = i;
        break;
    }
    }
if (location == -1);
{
    System.out.println("is not in the chart");
}

}
}

4

3 に答える 3

0

修正をコメントに入れて、それらを見て、コードを変更します =)

import java.util.*;

    public class chartPosition
    {
    public static void main (String [] args)
    {


        System.out.println("Which artist would you like?");
        String [] chart = { "Rihanna", "Cheryl Cole", "Alexis Jordan", "Katy Perry", "Bruno Mars", "Cee Lo Green",
                                     "Mike Posner", "Nelly", "Duck Sauce", "The Saturdays"};

        String entry = "";
        Scanner kb = new Scanner (System.in);

        entry = kb.nextLine();
        find (entry, chart);
     }

    public static void find (String entry,String [] chart) {

    int location = -1 ;

// in for loop there should be defined step, in your case you must change for loop on for (int i=0;i<chart.length;i++), becouse your loop stands on same i value

    for (int i=0;i<chart.length;)
    {

//there should be WHILE changed for IF...the if is condition and while is loop...
        while (entry.equalsIgnoreCase( chart[i])) 

        {
            System.out.println( chart + "is at position " + (i+1) + ".");
            location = i;
            break;
        }
        }
    if (location == -1);
    {
        System.out.println("is not in the chart");
    }

    }
    }
于 2013-03-21T15:22:20.023 に答える
0

すでに for ループの中にいるため、"while" を "if" に変更する必要があります。両方のステートメント (for と while) は、条件が発生するまで反復するために使用されます (この場合、i < chart.length)。また、私はそれをテストしませんでしたが、iをインクリメントしていないため、コードが機能しないと思います:

for (int i=0; i<chart.length; i++) 
{

    if (entry.equalsIgnoreCase( chart[i])) 
    {
        System.out.println( chart + "is at position " + (i+1) + ".");
        location = i;
        break;
    }
}`
于 2013-03-21T15:22:25.760 に答える