Я только что начал изучать Java и одно из различий, которые я заметил из C++, и VB заключается в том, что Java не имеет операторов goto, которые я часто использую при программировании.
Есть ли способ перепрыгнуть между строками, используя другое выражение? Я пытался использовать break и продолжать, но безрезультатно (я мог бы что-то делать не так).
Вот код с операторами goto и как я хочу, чтобы он работал:
public class HelloWorld {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args)
{
jump1:
System.out.print("What do you want to calculate? ");
String method = sc.nextLine();
if (method.equals("tax")) tax();
else {
System.out.print("Please input a valid method. \n\n");
goto jump1;
}
}
Что такое хорошая замена команд goto?
Вам следует избегать утверждений "goto" на всех языках в соответствии с правилами "структурированного программирования", вместо этого использовать if-then-else или do или while или для циклов для управления потоком программы.
Java ДЕЙСТВИТЕЛЬНО есть своего рода выражение "Гот", который вы можете использовать только немного изменить свой код, но рассмотреть while
цикл ниже и break
выражение, которое выскакивает из цикла.
public static void main(String[] args) {
String method = "";
while(! method.equals("tax")){
System.out.print("What do you want to calculate? ");
method = sc.nextLine();
if(method.equals("tax"))
break;
System.out.print("Please input a valid method. \n\n");
}
tax();
}
Оператор break
позволяет отображать ваше выражение "Please... valid". Вы также можете использовать это:
public static void main(String[] args) {
String method = "";
while(! method.equals("tax")){
System.out.print("What do you want to calculate? ");
method = sc.nextLine();
}
tax();
}
Я также вроде как:
public static void main(String[] args) {
String method = "";
while(1==1){
System.out.print("What do you want to calculate? ");
method = sc.nextLine();
if(method.equals("tax")
break;
System.out.print("Please input a valid method. \n\n");
}
tax();
}
Вы можете перейти к учебникам Java; они хороши.
В while
цикл в данном случае.
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/flow.html
Для этого (очень конкретного) экземпляра вы можете
System.out.print("What do you want to calculate? ");
String method = sc.nextLine();
while (!method.equals("tax"))
{
System.out.print("Please input a valid method. \n\n");
method = sc.nextLine();
}
tax();
Очевидно, что это работает только в том случае, если ваш единственный ожидаемый правильный ввод - это "налог", но это структура, на которой можно строить.
do..while
while в Java?
Вы хотите поместить ваш if-statement
в while-loop
, используя hasNextLine()
, которая будет зацикливаться до тех пор, пока не будет больше строк для повторения:
while(sc.hasNextLine()) {
// Your code..
}
Для получения дополнительной информации о проверке функции сканер :: hasNextLine.
В этом случае вы можете использовать цикл do-while-loop, который будет выполнять оператор первым и будет повторяться только в том случае, если утверждение истинно:
public class HelloWorld {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args)
{
boolean right = true;
do {
if(right)
System.out.print("What do you want to calculate? ");
else
System.out.print("Please input a valid method. \n\n");
String method = sc.nextLine();
boolean right = false;
} while (!method.equals("tax"));
tax();
}
}
Go To
почти для любого случая были обескуражены в течение десятилетий. Вы когда-нибудь слышали оloops
?