Java if语句中的哨兵号

Java if语句中的哨兵号,java,arrays,if-statement,break,sentinel,Java,Arrays,If Statement,Break,Sentinel,对于java类中的数据结构和算法,我被指派创建一个程序,该程序接受用户输入的商品名称和价格,然后平均价格。我已经成功地做到了这一点,但是,我在程序的某个规范上遇到了很多麻烦:一个终止项目的哨兵编号-1。这是我的代码,我将解释问题的原因 while(true){ System.out.print("Enter item " + (count + 1) + " name: "); // enter name names[count] = in.next(); // ne

对于java类中的数据结构和算法,我被指派创建一个程序,该程序接受用户输入的商品名称和价格,然后平均价格。我已经成功地做到了这一点,但是,我在程序的某个规范上遇到了很多麻烦:一个终止项目的哨兵编号-1。这是我的代码,我将解释问题的原因

 while(true){
       System.out.print("Enter item " + (count + 1) + " name: "); // enter name
       names[count] = in.next(); // next string becomes count index
       System.out.print("Enter item " + (count + 1) + " price: "); // enter price
       prices[count] = in.nextDouble(); // stores price entered as array index
       if(prices[count] == -1) break; // if next price == -1 // the code i want to change.
       if(names[count].equalsIgnoreCase("peas")) flag = true;
       average += prices[count];
       count++;
   }
因此,我的问题是:当我输入-1作为项目名称时,我想终止程序,而不必输入虚拟项目名称,然后输入哨兵编号-1

对不起,解释得太长了,我只是想说得透彻一点。 感谢您花时间阅读本文并帮助一位有希望的程序员

您需要使用字符串进行比较,但可以使用-1。另外,在你得到输入后立即做。大概

names[count] = in.next();
if (names[count].equals("-1")) {
    break;
} // ...

@MonkeyWithMachine+1可以通过接受答案来表示。这样做将通知其他人问题已经解决。