当前位置: 首页 > 知识库问答 >
问题:

Java中的循环逻辑

宁侯林
2023-03-14

我已经有一段时间没有编程了,我正在努力回到事情的转折点,这就是我已经走了多远。我的问题是,我如何循环第二个问题,这样,如果回答不是肯定的,它会再次问这个问题。我曾尝试在if语句周围放置一个循环,但每当我尝试从用户那里获得另一个响应时,它告诉我无法使用变量response来执行此操作。我觉得这是一个简单的修复,因为我理解循环,但我有一个困难的时候围绕着这个具体的问题我的头,提前谢谢你。

import java.util.Scanner;
public class Practice {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Welcome to my simulation, please enter your name");
        String name = input.nextLine();
        System.out.println("Welcome " + name + " would you like to play a game?");
        String response = input.nextLine();


        boolean yes = new String("yes").equals(response.toLowerCase());
        boolean no = new String("no").equals(response.toLowerCase());


        if (yes){
            System.out.println("Which game woudl you like to play?");
        }else if (no){
            System.out.println("Fine then, have a good day!");
        }
        else{
            System.out.println("please enter either yes or no");
        }
    }

}

共有3个答案

勾安翔
2023-03-14

怎么样

do{
    String response = input.nextLine();
    boolean yes = new String("yes").equals(response.toLowerCase());
    boolean no = new String("no").equals(response.toLowerCase());
    if (yes){
        System.out.println("Which game woudl you like to play?");
    }else if (no){
        System.out.println("Fine then, have a good day!");
    }
    else{
        System.out.println("please enter either yes or no");
    }
}while(!response.equals("yes") && !response.equals("no"));
酆阳煦
2023-03-14

首先,为了让自己更轻松,您不需要使用boolean变量。您可以简单地使用. equals()方法来测试响应是否等于yes或no。在这种情况下,使用if etc语句会更容易,如下所示:

if (response.equals("Yes"))
{
    System.out.println("Which game woudl you like to play?");
}

else if (response.equals("No"))
{    
    System.out.println("Fine then, have a good day!");
}

else if (!response.equals("Yes") && !response.equals("No"))
{
    while (!response.equals("Yes") && !response.equals("No"))
    {
        System.out.println("please enter either yes or no");
        response = input.nextLine();
    }
}

希望这对你有帮助。

秦时铭
2023-03-14

有很多方法可以做到这一点。这是我想到的第一个:

while (true) {
    response = input.nextLine().toLowerCase();
    if (response.equals("yes") {
        System.out.println("Which game woudl you like to play?");
        break;
    } else if (response.equals("no") {
        System.out.println("Fine then, have a good day!");
        break;
    } else {
        System.out.println("please enter either yes or no");
    }
}
 类似资料:
  • 编写一个程序,不断提示用户从键盘输入整数。当输入的整数为-5或0或大于8时,程序终止。在循环控制条件中使用逻辑和。仔细测试您的程序,以确保满足所有循环终止条件。 公开课{ } 从这个开始,但没能完成。帮助。

  • 有人能帮我找出为什么Instachat:Stick\u out\u舌头\u winking\u eye:'和'Docs To Go'的代码没有返回False吗™ 免费办公套房'?它们包含Unicode大于127的字符(分别为emoji和TM),因此从技术上讲,这两个字符都应该返回False。 我不明白为什么else条款在这里不起作用。 下面应该是我的代码的预期输出:True False 然而,实际

  • 问题内容: 我正在读一本书,重新整理了我的数据结构,它提出的一个问题是不使用“第一个”和“最后一个”指针来构建一个循环的单链表,而是通过使用一个引用来访问它。当前”。我不确定我是否理解这个问题,我一直以为我至少需要第一个或最后一个。这是我的实现,但是它具有“ first”,不确定如何解决。您能否评论一下如何调整代码以消除对第一代码的依赖? 然后是列表本身: 问题答案: 如果您有一个循环链表,则每个

  • 我需要对while或do循环进行编码,以确定用户输入的数字是否在特定范围内(30

  • 标准循环 为了保持简洁,重复的任务可以用以下简写的方式: - name: add several users user: name={{ item }} state=present groups=wheel with_items: - testuser1 - testuser2 如果你在变量文件中或者 ‘vars’ 区域定义了一组YAML列表,你也可以这样做: vars

  • 问题内容: 请看下面的Java 无限循环。它导致其下面的语句的编译时错误。 以下相同的无限循环可正常工作,并且不会发出任何错误,其中我只是用布尔变量替换了条件。 同样在第二种情况下,循环之后的语句显然不可访问,因为布尔变量为true,但编译器根本没有抱怨。为什么? 编辑:显然,以下版本的卡在无限循环中,但是即使循环中的条件始终存在,因此循环下面的语句也不会对该语句下的语句发出任何编译器错误,因此循