为了账号安全,请及时绑定邮箱和手机立即绑定

需要一个不满足的 if 语句来转到代码开头

需要一个不满足的 if 语句来转到代码开头

慕斯709654 2023-07-28 16:20:01
我正在尝试设置一些 if 语句,以确保用户输入不会超出我设置的范围(如果我希望 if 语句将它们返回到主代码的开头)。String animal = JOptionPane.showInputDialog("Enter In Animal Name"); // Asking for user to enter a animalString fruit = JOptionPane.showInputDialog("Enter In A Fruit Name"); // Asking user to enter a fruitint days = Integer.parseInt(JOptionPane.showInputDialog("Enter In How Many Days Between 1 And 10"));// Above integer is asking the user to enter the amount of days.// Below if statements are basically error checking to ensure the user stays between the// range asked for when they are asked to enter in days between 1 and 10.if (days <= 0) { // Ensures that negative numbers cannot be entered.    JOptionPane.showMessageDialog(null, "Error, Please enter a number between 1 and 10");    return;}if (days >= 10) { // Ensures nothing over 10 can be entered.    JOptionPane.showMessageDialog(null, "Error, Please enter a number between 1 and 10");    return;}如果 if 语句说它是一个错误,它应该返回要求他们重新输入天数
查看完整描述

4 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

使用do-while至少执行一次的循环,如果days不满足条件则每次都循环回来。


public static void main(String[] args) 

{

    do {

        //Your other code

        String animal = JOptionPane.showInputDialog("Enter In Animal Name"); // Asking for user to enter a animal

        String fruit = JOptionPane.showInputDialog("Enter In A Fruit Name"); // Asking user to enter a fruit


        int days = askForInput();


        if (days <= 0 || days >= 10) { // Ensures that negative numbers cannot be entered.

            JOptionPane.showMessageDialog(null, "Error, Please enter a number between 1 and 10");

        }


    } while (days <= 0 || days >= 10);

}


//Pass whatever parameters you might need

public static int askForInput() {

    int days = Integer.parseInt(JOptionPane.showInputDialog("Enter In How Many Days Between 1 And 10"));

    //Any other code you want

    return days;

}

我还将它提取到一个方法中,这可能是不必要的,但如果需要,它可以让您添加更多功能。


如果您不想每次都被问到这个问题,您也可以移动animal或fruit离开。do


查看完整回答
反对 回复 2023-07-28
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

允许代码重新启动代码块(即返回到开头并重试)的一种方法是使用带有“永远”循环的continueand语句。break


for (;;) { // loop forever

    // some code here

    if (failure condition 1) {

        // handle failure here

        continue; // go back and try again

    }

    if (failure condition 2) {

        // handle failure here

        continue; // go back and try again

    }

    // more code and failure condition checks here

    break; // unconditional exit loop, since all is ok

}

如果“此处的某些代码”本身位于循环内,但需要返回到开头并重试,则可以为此使用标签:


TRYAGAIN: for (;;) { // loop forever

    // some code here

    for (some looping here) {

        // some code here

        try {

            if (failure condition) {

                // handle failure here

                continue TRYAGAIN; // go back and try again

            }

        } finally {

            // code here will execute, even if 'continue' is used

        }

    }

    // more code and failure condition checks here

    break; // unconditional exit loop, since all is ok

}


查看完整回答
反对 回复 2023-07-28
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

String animal;

String fruit;

int days = 0;


animal = JOptionPane.showInputDialog("Enter In Animal Name");

fruit = JOptionPane.showInputDialog("Enter In A Fruit Name");


while(days <= 0 || days > 10) {

    days = Integer.parseInt(JOptionPane.showInputDialog("Enter In How Many Days Between 1 And 10"));


    if (days <= 0 || days > 10) {

        JOptionPane.showMessageDialog(null, "Error, Please enter a number between 1 and 10");

    }

}


查看完整回答
反对 回复 2023-07-28
?
临摹微笑

TA贡献1982条经验 获得超2个赞

使用 while 循环


// Your user prompt for animal and fruit goes here


boolean exit = false;

while(!exit)

{

    // Your user prompt for days code goes here


    if (days <= 0 || days > 10) {

        JOptionPane.showMessageDialog(null, "Error, Please enter a number between 1 and 10");

        exit = false; // This is not necessary but nice for readability's sake

    }

    else {

        exit = true;

    }

}


查看完整回答
反对 回复 2023-07-28
  • 4 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信