if语句中的Sentinel号

时间:2017-01-25 04:24:38

标签: java arrays if-statement break sentinel

对于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时终止程序,而不必输入" dummy"项目名称然后必须输入标记号码(-1)。

很抱歉很长的解释,只是想彻底。 感谢您花时间阅读本文并帮助程序员充满希望。

1 个答案:

答案 0 :(得分:1)

您需要使用String进行比较(但"-1"会这样做)。此外,在您获得输入后立即执行此操作。像,

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