如何打破 java 中的“if”语句?

在下面的代码中。我只想先执行 if 语句。执行时显示输出,有效再试一次。我想要它,只打印“有效”而不显示“再试一次”。在java中怎么做。??我是初学者。


public class Test {

    public void validate(int age) {

        if (age >= 18) {

            System.out.println("Valid.");

        }

        if (age < 18) {

            System.out.println("Not valid.");

        } else {

            System.out.println("try again.");

        }

    }


    public static void main(String[] args) {

        Test t = new Test();

        t.validate(18);

    }

}


拉风的咖菲猫
浏览 93回答 3
3回答

蛊毒传说

简而言之:public void validate(int age) {&nbsp; &nbsp; if (age >= 18) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Valid.");&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Not valid.");&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Try again.");&nbsp; &nbsp; }}解释:if如果年龄至少为 18 岁,第一个仅打印文本,但这与以下几行无关。那些自行行动并有两种情况:用户未满 18 岁或显示“重试”文本。你想要做的是检查“年龄是否至少为 18 岁?” (就像你已经做的那样)然后显示“有效”或“无效”。通过将else案例添加到此检查来执行此操作,您就可以了。编辑:else由于我理解为“我需要显示第二条消息但仅在年龄无效的情况下”的第二条评论,我将第二行附加到案例中。

青春有我

首先,让我们整理一些关于整数的事实。如果整数 >= 18,则意味着它不 < 18如果整数 < 18,则表示它不是 >= 18任何数字都是整数,它要么 >= 18 要么 < 18。不能两者都是。两者都不是。现在到你的代码。我可以这样写你的方法:public void validate(int age) {&nbsp; &nbsp; if (age >= 18) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Valid.");&nbsp; &nbsp; }&nbsp; &nbsp; if (age < 18) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Not valid.");&nbsp; &nbsp; }}或更简单(基于上述事实)public void validate(int age) {&nbsp; &nbsp; if (age >= 18) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Valid.");&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Not valid.");&nbsp; &nbsp; }}那将写Validor Not Valid。我也可以这样写代码:&nbsp; &nbsp;public void validate(int age) {&nbsp; &nbsp; &nbsp; &nbsp; if (age >= 18) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Valid.");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; if (age < 18) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Not valid.");&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("try again.");&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }但else由于上述有关数字的事实,该部分是多余的。请注意我是如何使用 areturn来“中断”控制流的。您不能break在此上下文中使用语句。JLS 14.15中的 Java 语言规范声明对于未标记的break语句:“如果直接封闭的方法、构造函数或初始化程序中没有 switch、while、do 或 for 语句包含 break 语句,则会发生编译时错误。”我们这里没有switch, while,do或for声明。JLS 说,对于有标签的休息时间。" break 语句必须引用直接封闭的方法、构造函数、初始化程序或 lambda 主体中的标签。没有非局部跳转。如果在立即封闭的方法、构造函数、初始化程序中没有以标识符作为其标签的标记语句,或 lambda 主体包含 break 语句,发生编译时错误。 ”...所以我想可以这样写:&nbsp; &nbsp;public void validate(int age) {&nbsp; &nbsp; &nbsp; &nbsp;label: {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (age >= 18) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Valid.");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break label;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (age < 18) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Not valid.");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println("try again.");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp;}但坦率地说,这太可怕了。

犯罪嫌疑人X

&nbsp; &nbsp;public void validate(int age) {&nbsp; &nbsp; &nbsp; &nbsp; if (age >= 18) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Valid.");&nbsp; &nbsp; &nbsp; &nbsp; } else if (age < 18) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Not valid.");&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("try again.");&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; public static void main(String[] args) {&nbsp; &nbsp; &nbsp; &nbsp; Test t = new Test();&nbsp; &nbsp; &nbsp; &nbsp; t.validate(18);&nbsp; &nbsp; }你的代码的问题是即使age>=18它仍然会检查它是否也<18,所以它总是会说什么try again时候age>=18。另外,请检查它永远不会try again用这个更正的代码说的评论,因为在任何情况下都age不会同时 <18 和 >=18编辑我更喜欢丹尼斯的代码,因为我认为这就是你想要实现的目标。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java