亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將用戶輸入用于 while 循環中的字符串數組?

如何將用戶輸入用于 while 循環中的字符串數組?

素胚勾勒不出你 2021-11-11 15:38:16
我正在嘗試將來自學生姓名和分數問題的用戶輸入轉換為數組。我還需要幫助來打印數組。while 循環使用 boolean loopNaming 作為其條件,并且每次循環發生時都會更新 i 。 public static void main(String [] args)    {        Scanner keyboard = new Scanner(System.in);        double score;        boolean loopNaming=true;        int i=0;        String[] name = new String[i];         while(loopNaming==true)            {                System.out.printf("Enter name of student or done to finish: ");                name[i] = keyboard.next();                if(name[i].equals("done"))                {                    loopNaming = false;                }                else                {                    System.out.println("Enter score: ");                    score = keyboard.nextDouble();                }                i=i+1;            }            System.out.println(name[i]);        }    }
查看完整描述

3 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

您可以簡化程序的邏輯并編寫如下內容,


public static void main(String[] args) {

    Scanner keyboard = new Scanner(System.in);


    List<String> nameList = new ArrayList<String>();

    List<Double> scoreList = new ArrayList<Double>();


    while (true) {

        System.out.printf("Enter first name of student or done to finish: ");

        String fname = keyboard.next();

        if (fname.equals("done")) {

            break;

        }

        System.out.printf("Enter last name of student: ");

        String lname = keyboard.next();

        nameList.add(fname + " " + lname);

        System.out.println("Enter score: ");

        scoreList.add(keyboard.nextDouble());

    }

    keyboard.close();

    System.out.println("Names: " + nameList);

    System.out.println("scores: " + scoreList);

}


查看完整回答
反對 回復 2021-11-11
?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

public static void main(String [] args)

    {

        Scanner keyboard = new Scanner(System.in);

        double score;


        boolean loopNaming=true;

        int i=0;

        ArrayList<String> name = new ArrayList<>();




        while(loopNaming==true)

        {

            System.out.printf("Enter name of student or done to finish: ");


            String input = keyboard.next();

            if(input.equals("done"))

            {

                loopNaming = false;

            }

            else

            {   name.add(input);

                System.out.println("Enter score: ");

                score = keyboard.nextDouble();

            }

            i=i+1; //no need to use


        }

        System.out.println(name);


    }

您應該使用 adynamic list因為您不能在 Java 中調整數組的大小。第二點當用戶給出“完成”時,你不應該把它放在列表中,所以在插入之前檢查它。


查看完整回答
反對 回復 2021-11-11
?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

您聲明了大小為 0 的 String 數組。這就是您不能向其中添加元素的原因。


import java.util.Scanner;


public class NameArray {

 public static void main(String [] args){

     Scanner keyboard = new Scanner(System.in);

     double score[] = new double[10];


     boolean loopNaming=true;

     int i=0;

     String namae;

     String[] name = new String[10];

     int count = 0;



     while(loopNaming==true){

         System.out.printf("Enter name of student or done to finish: ");

         name[i] = keyboard.next();


         if(name[i].equals("done")){

             loopNaming = false;

         }

         else{

            System.out.println("Enter score: ");

            score[i] = keyboard.nextDouble();

            count++;

         }

         i=i+1;


     }

     for(int j = 0; j < count; j++) {

         System.out.println(name[j]+" "+score[j]);

     }

 }

}

試試這個代碼,或者你可以選擇任何其他數據結構。


查看完整回答
反對 回復 2021-11-11
  • 3 回答
  • 0 關注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號