gpt4 book ai didi

java - While 循环有问题吗?

转载 作者:行者123 更新时间:2023-12-01 18:37:39 24 4
gpt4 key购买 nike

每次我从选项列表中输入一个选项时,它都会不断告诉我再次输入一个选项,只有当用户输入不是选项的内容时,它才会执行此操作。

对于 yes 和 no 选项,我在 while 循环中遇到了同样的问题,但修复后,除了更多选项之外,我看不出它与我仍然遇到问题的区域之间有任何差异。

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package testing.tests;

import java.util.Scanner;

/**
*
* @author andyoppenheimer
*/
public class TestingTests {

static Scanner sc = new Scanner(System.in);

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here

String start_end;
String test_run = null;
int name_num = 0;
int LOOP_1 = 0;
int LOOP_2 = 0;

while (LOOP_1 == 0) {
System.out.println("Do you want to continue, yes or no?");
System.out.print("----->: ");
start_end = sc.next();
if ("yes".equals(start_end)) {
LOOP_1 = 1;
}
if ("no".equals(start_end)) {
LOOP_1 = 1;
System.exit(0);
}
if (!"no".equals(start_end) & !"yes".equals(start_end)) {
LOOP_1 = 0;
}
}

**

while (LOOP_2 == 0) {
System.out.println("Please pick your test to run.");
System.out.println("population");
System.out.println("income");
System.out.println("password");
System.out.println("randomize");
System.out.print("----->: ");
test_run = sc.next();
if (!"population".equals(test_run) && !"income".equals(test_run) && !"password".equals(test_run) && !"randomize".equals(test_run)) {
LOOP_2 = 0;
}
if ("population".equals(test_run) & "income".equals(test_run) & "password".equals(test_run) & "randomize".equals(test_run)) {
LOOP_2 = 1;
}

**

        }

if ("population".equals(test_run)) {
}

if ("income".equals(test_run)) {
}

if ("password".equals(test_run)) {
}

if ("randomize".equals(test_run)) {
System.out.println("Enter the number of names that will be randomized.");
System.out.print("----->: ");
name_num = sc.nextInt();
}

}
}

最佳答案

更改此行

if ("population".equals(test_run) & "income".equals(test_run) & "password".equals(test_run)& "randomize".equals(test_run)) {
LOOP_2 = 1;
}

if ("population".equals(test_run) || "income".equals(test_run) || "password".equals(test_run)
|| "randomize".equals(test_run)) {
LOOP_2 = 1;
}
<小时/>

|| 是逻辑 OR 运算符,这就是您应该使用的。

& 评估操作的双方,因此您的 if 会将 test_run 评估为等于 “人口”“收入”“密码”“随机化”,这是不可能的。

编辑:

由于第一个 if 没有更改任何内容(LOOP_2 将保留其值 0),因此我会忽略整个 if ,也就是说,删除第一个if

// Delete this
if (!"population".equals(test_run) && !"income".equals(test_run) && !"password".equals(test_run) && !"randomize".equals(test_run)) {
LOOP_2 = 0;
}

关于java - While 循环有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21212586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com