if 语句中的哨兵编号

Sentinel number in if statement

对于 java class 中的数据结构和算法,我被指派创建一个程序,该程序接受用户输入的商品名称和价格,然后计算平均价格。我已经成功地做到了这一点,但是,我在程序的某个规范上遇到了很多麻烦:终止项目的标记号 (-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 时,我想终止程序,而不必输入 "dummy" 项目名称,然后必须输入标记编号 (-1 ).

抱歉解释得太长了,只是想说的很透彻。 感谢您花时间阅读本文并帮助一个满怀希望的程序员。

您需要使用 String 进行比较(但 "-1" 即可)。另外,在收到输入后立即执行此操作。像,

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