java - 如何只打印 else 而不是 if?

标签 java eclipse

所以我刚刚下载了 Eclipse,目前我正在上 9 年级的计算机编程课,所以我还不是很了解。我在那堂课之前编码,所以我有点领先。今天生病了,发现了Eclipse,开始使用,测试了一下。这也是为什么您会在其中看到 Hello World 语句的原因。我被带走了,开始编写更多代码。我想在我的代码中添加一些 if 语句,但我不确定如何正确使用它们。在行中

    System.out.println("So your name is... " + name + ". Right?");
    yes = scan.nextLine();

    if ("Yes" != null)
    {
        System.out.println("Great!");

     if ("No" != null)
        {
            System.out.println("Oh. Please retype it.");
            no = scan.nextLine();
        }
    }

我不确定为什么,但输出是,Hello World! 请输入您的姓名 --> 贾斯汀 请输入您的年龄 --> 15 请输入您的出生年份 --> 1999 所以你的名字是……贾斯汀。正确的? 不 伟大的! 哦。请重新输入。

如您所见,我输入了 no,但它仍然给我返回结果,就好像我也输入了 Yes 一样。我怎样才能解决这个问题?提前致谢!

import java.util.Scanner;
public class helloworld_main {
private static Scanner scan;

public static void main(String args[])
{
    System.out.println("Hello World!");


    scan = new Scanner(System.in);
    String name, age, year, yes, no;

    System.out.println("Please enter your name --> ");
    name = scan.nextLine();

    System.out.println("Please enter your age --> ");
    age = scan.nextLine();

    System.out.println("Please enter the year you were born --> ");
    year = scan.nextLine();

    System.out.println("So your name is... " + name + ". Right?");
    yes = scan.nextLine();

    if ("Yes" != null)
    {
        System.out.println("Great!");

     if ("No" != null)
        {
            System.out.println("Oh. Please retype it.");
            no = scan.nextLine();
        }
    }

    System.out.println("The age you entered is..." + age + ". Right?");
    System.out.println("The year you were born is... " + year + ". Right?");
    scan.close();

}

最佳答案

问题出在下面的代码上:

if ("Yes" != null)
    {
        System.out.println("Great!");

     if ("No" != null)
        {
            System.out.println("Oh. Please retype it.");
            no = scan.nextLine();
        }
    }

试试这个:

if ("Yes".equals(yes)) {
        System.out.println("Great!");
} else {
        System.out.println("Oh. Please retype it.");
        no = scan.nextLine();
}

虽然这会解决您的问题,但它不会实现您的目标。一旦用户输入了错误的名字,您希望他再次输入该名字并再次询问他是否是他的正确名字。在用户键入"is"之前,您不想继续执行此操作。有一个线索给你。使用 do-while 循环。

关于java - 如何只打印 else 而不是 if?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28590089/

相关文章:

java - 带多线程服务器 (TCP/IP) 的客户端/服务器聊天室

java - 使用 radioButtons 更新 ListView 适配器输入

Java Ant,从 repo 中获取 Ivy 时出错

eclipse - 无法单击 Eclipse 中的菜单栏项

java - 有关(刷新).class 文件的问题

Java,将非静态方法传递给另一个方法

java - 使用 MVC 和 DAO 模式在 JSP 页面中的 HTML 中显示 JDBC 结果集

java - Grails Spring Security 2.0 带参数的闭包

java - Oracle Weblogic : The root element web-app is missing in the descriptor file

java - 将 webapp 转换为 war 文件时覆盖现有源文件意味着什么