我對Java非常陌生(完全是編程)。我相信解決我的問題非常簡單,但我無法弄清楚。下面的代碼是我的程序的一小部分。但它仍然是可編譯的,並且仍然存在相同的問題。我怎樣才能使這個陳述(在一個while循環內)不打印兩次到控制檯?
下面是代碼::
import java.util.Scanner;
public class Practice{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
String command = "";
double d; // Distance
double t; // Time
double s; // Speed
System.out.println("Hello, I am the Physics Calculator!!");
while (!command.equals("end")){
System.out.print("What would you like to calculate?: "); // after the first loop, this statement is printed twice to the screen! :(
command = input.nextLine();
System.out.println();
if (command.equals("speed")){
System.out.print("What is the distance in meters?: ");
d = input.nextDouble();
System.out.print("What is the time is seconds?: ");
t = input.nextDouble();
s = d/t;
System.out.println("The Speed is "+ s +" m/s");
System.out.println();
}
} //End of the while-loop
}
}
的代碼的while循環中的第一行是:
System.out.println("What would you like to calculate?: ");
到目前爲止好。當我運行該程序時,它會打印:* 您要計算什麼?:* 然後程序按預期繼續。
問題出在程序到達while循環的末尾之後,並返回到while循環的頂部。它會打印:
你想做些什麼?:計算
你想做些什麼?:計算
我只是想不通爲什麼它打印出來兩次。
這裏是運行程序時,我收到確切的輸出的例子(斜體是輸出到控制檯和大膽是我輸入):
開始{
你好,我是物理計算器!
你想什麼來計算?:速度
什麼是什麼時間?:米50
的距離秒?:
速度爲1.0m/S
你想做些什麼?:計算
你想什麼來計算?:
}結束
最後,我還是可以輸入「速度」,並繼續與該程序。我只想擺脫第二個'你想要計算什麼'。
關於我遇到的問題的任何輸入將受到高度讚賞!
非常感謝爲您的時間!
請考慮的Java編碼約定。命名你應該使用'input'而不是'Input'和'command'而不是'Command'。 –
謝謝恩!我對Java的編碼約定做了一些研究,你是對的!我沒有遵循慣例,所以我編輯了我的帖子(和我的程序),並糾正了我的錯誤。再次感謝! – JavaSufferer