如何解决如果while循环内的分支未按预期执行
这是我正在使用的代码。此处引用的其他类已经过测试和运行,尽管它们不会影响此处的语句功能。
import java.util.Scanner;
public class TransferTest
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
double transferAmount;
Account acct1 = new Account(100,null);
Account acct2 = new Account(100,null);
System.out.print("Choose an option: "
+ "\n1 <Enter>: to transfer from account 1 to account 2"
+ "\n2 <Enter>: to transfer from account 2 to account 1"
+ "\n3 <Enter>: to quit");
int userOption = scan.nextInt();
scan.nextLine();
while(userOption != 3);
{
if (userOption == 1)
{
System.out.print("You chose transfer from account 1 to account 2"
+ "\nEnter an amount to transfer: ");
transferAmount = scan.nextInt();
acct1.transfer(acct2,transferAmount);
}
else if (userOption == 2)
{
System.out.print("You chose transfer from account 1 to account 2"
+ "\nEnter an amount to transfer: ");
transferAmount = scan.nextInt();
acct2.transfer(acct1,transferAmount);
}
else if (userOption == 3)
{
System.out.println(acct1.toString());
System.out.println(acct2.toString());
}
else
{
System.out.println("Invalid input");
}
System.out.print("Choose an option: "
+ "\n1 <Enter> to transfer from account 1 to account 2?"
+ "\n2 <Enter> to transfer from account 2 to account 1"
+ "\n3 <Enter> to quit");
userOption = scan.nextInt();
scan.nextLine();
}
System.out.println(acct1.toString());
System.out.println(acct2.toString());
scan.close();
}
}
我要这样做是提示用户选择由数字值表示的三个选项之一。然后跟随该值的if分支,在用户为1或2的情况下询问用户一个金额。直到用户选择选项3为止,不退出while循环。实际上是,当输入3或超出指定范围的值时,该程序正常工作,但是当1或2个被选择作为选项没有任何反应,甚至没有报表打印输出。非常感谢您提供帮助,以使其正常工作。
解决方法
while循环后使用分号。
while(userOption != 3);
实际上等于:
while(userOption != 3) {
// do nothing
}
因此该行之后没有代码被执行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。