Вы можете использовать цикл while
, как показано ниже, и когда пользователь вводит 2
, прервите его
import java.io.*;
import java.util.*;
public class Main {
public static void addiePorterMod8Banking (String args[]) {
while (true) {
int depositSavings, depositChecking, withdrawalSavings, withdrawalChecking, transferSavingsToChecking;
int b, c, d, e, f, g, lp;
int savingsaccount = 3000;
int checkingaccount = 650;
Scanner kbReader = new Scanner(System.in);
System.out.println("What do you wish to do today?\n1 for deposit to savings\n2 for deposit to checking\n3 for withdraw from savings\n4 for withdraw from checking\n5 for transfer funds from savings to checking");
int a = kbReader.nextInt();
if (a == 1) {
System.out.println("1-you chose to make a deposit to savings. How much would you like to deposit?");
int answer = kbReader.nextInt();
lp = savingsaccount + answer;
System.out.println("Your total in savings is $" + lp);
}
if (a == 2) {
System.out.println("2-you chose to make a deposit to checking. How much would you like to deposit?");
int answer = kbReader.nextInt();
lp = checkingaccount + answer;
System.out.println("Your total in checking is $" + lp);
}
if (a == 3) {
System.out.println("3-you chose to withdraw from savings. How much would you like to withdraw?");
int bunny = kbReader.nextInt();
lp = savingsaccount - bunny;
System.out.println("Your total in savings is $" + lp);
}
if (a == 4) {
System.out.println("4-you chose to withdraw from checking. How much would you like to withdraw?");
int bubble = kbReader.nextInt();
lp = checkingaccount - bubble;
System.out.println("Your total in checking is $" + lp);
}
if (a == 5) {
System.out.println("5-Your current balance in savings is $3000. How much would you like to transfer?");
int awesome = kbReader.nextInt();
lp = savingsaccount - awesome;
int al = checkingaccount + awesome;
System.out.println("Your total in checking is $" + al + "." + "Your total in savings is $" + lp + ".");
}
System.out.println("Would you like another transaction? 1 for yes. 2 for No");
int more = kbReader.nextInt();
if (more == 2) {
break;
}
}
}
}
Кроме того, чем Вы были бы как приоритет, чтобы быть, что это согласно ECMA, что это согласно спецификации MS и что на самом деле делает csc, у меня есть один совет:
не делают этого .
я думаю, что это очень более ясно для записи:
string c = (a ?? "") + (b ?? "");
, С другой стороны, учитывая, что пустой указатель в конкатенации строк заканчивает тем просто, что был пустой строкой так или иначе, просто запишите:
string c = a + b;
РЕДАКТИРОВАНИЕ: Относительно зарегистрированного приоритета, в обоих спецификация C# 3.0 (документ Word) и ECMA-334, дополнение связывает более трудный, чем??, который связывает более трудный, чем присвоение. Ссылка MSDN, данная в другом ответе, является просто неправильной и причудливой, IMO. Существует изменение, показанное на странице, сделанной в июле 2008, который переместил условный оператор - но по-видимому неправильно!
Приоритет оператора документируется на MSDN.
Однако приоритет на MSDN противоречит приоритету и в загружаемая спецификация C# также от Microsoft, и в спецификация на ECMA. Который немного нечетен.
Безотносительный, как Jon Skeet сказал в своем ответе, лучше всего чтобы не полагаться на приоритет операторов, но быть явным посредством использования скобок.
Никогда не полагайтесь на приоритет оператора. Всегда явно указывают, как Вы хотите, чтобы Ваш код действовал. Сделайте себе и другим одолжение для того, когда Вы возвратитесь к своему коду.
(a ?? "") + (b ?? "")
Это не оставляет места для неоднозначности. Неоднозначность является благоприятной почвой ошибок.
Это интересный, что http://msdn.microsoft.com/en-us/library/6a71f45d.aspx и http://en.csharp-online.net/ECMA-334:_14.2.1_Operator_precedence_and_associativity дает другой приоритет??.
MSDN:
ECMA:
, я думаю, что MSDN должен быть неправильным, рассмотреть:
string a = null;
string b = a ?? "foo";
// What is b now?