プログラムでユーザー入力を文字列として取得し、それが「はい」または「いいえ」に等しいかどうかを確認し、どちらにも等しくない場合は「不正なエントリ」を表示することができません。「はい」または「いいえ」を入力しても、常に「間違ったエントリ」と表示されます。いくつかの異なるタイプの if と do/while を試しましたが、うまくいかないようです:
クラスファイル:
import java.util.Scanner;
public class PhysicsProblem
{
private double vI; // initial velocity
private double vF; // final velocity
private double t; // time
private double deltaX; // change in the x value
//Make sure to add acceleration
public PhysicsProblem (double vI, double vF, double t, double deltaX)
{
this.vI = vI;
this.vF = vF;
this.t = t;
this.deltaX = deltaX;
}
public void setVi(String strVi)
{
while (!(strVi.equals("no") || strVi.equals("yes")));
{
System.out.println("incorrect entry");
}
if (strVi.equals("yes"))
{
System.out.println("Enter the initial velocity: ");
vI = new Scanner(System.in).nextDouble();
}
if (strVi.equals("no"))
{
System.out.println("The program is assuming you want to solve" +
"for intial velocity");
}
}
プログラム:
java.util.Scanner をインポートします。
public class PhysicsProblemSolver
{
public static void main (String[] args)
{
double vI = 0;
double vF = 0;
double t = 0;
double deltaX = 0;
Scanner scan = new Scanner(System.in);
PhysicsProblem problem1 = new PhysicsProblem (vI, vF, t, deltaX);
// Checks to see if initial velocity is given
System.out.println("Do you know the initial velocity? (Type 'yes' or 'no')");
String strVi = scan.next();
problem1.setVi(strVi);
不完全なプログラムのように見えることはわかっていますが、実際はそうですが、この 1 つのセクションで助けが必要だったので、不要な部分を含めないようにしました。紛らわしくてすみません!