首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请用户再次输入,直到正确为止

请用户再次输入,直到正确为止
EN

Stack Overflow用户
提问于 2022-11-16 01:31:06
回答 1查看 29关注 0票数 0
  • 我需要显示一个带有两个选项的菜单,并要求用户输入一个选项.

  • I必须验证输入:如果用户放置"1“或"2”以外的任何内容,程序将打印错误消息并要求他们输入新的输入。

代码语言:javascript
复制
import java.util.Scanner;
public class IndenteurPseudocode {

    public static void main(String[] args) {


        System.out.println("Ce programme permet de corriger l'indentation d'un algorithme ecrit en pseudocode.\n");
        System.out.println("----");
        System.out.println("Menu");
        System.out.println("----");
        System.out.println("1. Indenter pseudocode");
        System.out.println("2. Quitter\n");
        
        Scanner myObj = new Scanner(System.in);
        String choixMenu;
        boolean valid = false;

        while(!valid) {
            System.out.print("Entrez votre choix : ");
            choixMenu = myObj.nextLine();
            if ( choixMenu == "1" || choixMenu == "2") {
                valid = true;
                System.out.print(choixMenu);
            } else {
                System.out.println("invalid");
            }
        }
        
    }

}

代码语言:javascript
复制
Ce programme permet de corriger l'indentation d'un algorithme ecrit en pseudocode.

----
Menu
----
1. Indenter pseudocode
2. Quitter

Entrez votre choix : 1
invalid
Entrez votre choix : 2
invalid
Entrez votre choix : 3
invalid
Entrez votre choix : 

我使用了while循环,但是对于用户选择的任何输入,结果都是相同的。

EN

回答 1

Stack Overflow用户

发布于 2022-11-16 02:23:57

因为您处理的是字符串,所以必须使用.equals()作为==,将这两个字符串作为单独的对象进行比较,并始终返回false (除非两个字符串引用内存中的同一个对象)。

代码语言:javascript
复制
if ( choixMenu.equals("1") || choixMenu.equals("2")){
//code
}

您还可以将输入数字解析为整数,并保留==

代码语言:javascript
复制
int choixMenu;

//...

choixMenu = myObj.nextInt();
if ( choixMenu == 1 || choixMenu == 2) {
//code
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74454134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档