Java-如何结束while函数的进程

Java-如何结束while函数的进程,java,loops,while-loop,main,do-while,Java,Loops,While Loop,Main,Do While,我需要一个程序,要求用户介绍多达10个名称(最后,用户可以键入“fim”[以葡萄牙语结尾]) 我目前的问题是,如果用户达到10个名字,如何终止程序 以下是我的主要功能: public static void main(String[] args) { Scanner keyboard = new Scanner (System.in); System.out.println("Introduza até 10 nomes completos com até 120 caracte

我需要一个程序,要求用户介绍多达10个名称(最后,用户可以键入“fim”[以葡萄牙语结尾])

我目前的问题是,如果用户达到10个名字,如何终止程序

以下是我的主要功能:

public static void main(String[] args) {
    Scanner keyboard = new Scanner (System.in);
    System.out.println("Introduza até 10 nomes completos com até 120 caracteres e pelo menos dois nomes com pelo menos 4 caracteres: ");
    String nome = keyboard.next();
    for(int i = 0; i < 10; i++) {
        while(!nome.equalsIgnoreCase("fim") && i<10) {
            nome = keyboard.next();
        }
    }
    keyboard.close();
}
publicstaticvoidmain(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
System.out.println(“Introza até10 nomes complettos com até120 caracteres e pelo menos dois nomes com pelo menos 4 caracteres:”);
字符串nome=keyboard.next();
对于(int i=0;i<10;i++){

while(!nome.equalsIgnoreCase(“fim”)&&i您正运行在一个无限循环中,while
保持不变。您希望将其更改为一个
if
语句,仅请求
fim
并在发生这种情况时调用
break;

因此,它应该结束为:

for(int i = 0; i < 10; i++) { //This will run 10 times
    nome = keyboard.next();
    if(nome.equalsIgnoreCase("fim")) { //This will verify if last input was "fim"
        break; //This breaks the for-loop
    }
}

您正在运行的
while
是一个无限循环。您希望将其更改为
if
语句,只要求
fim
并在发生这种情况时调用
break;

因此,它应该结束为:

for(int i = 0; i < 10; i++) { //This will run 10 times
    nome = keyboard.next();
    if(nome.equalsIgnoreCase("fim")) { //This will verify if last input was "fim"
        break; //This breaks the for-loop
    }
}

您可能想尝试一下这段代码(我在适当行的注释中做了一些解释):


您可能想尝试一下这段代码(我在适当行的注释中做了一些解释):


我不太喜欢
break
,因此除了Frakcool的优秀答案之外,您还可以使用
do-while
循环:

String nome;
int i = 0;
do {
    nome = keyboard.next();
    i++;
}
while(!nome.equalsIgnoreCase("fim") && i<10);
字符串名称;
int i=0;
做{
nome=键盘.next();
i++;
}

虽然(!nome.equalsIgnoreCase(“fim”)和&i我不太喜欢
break
,因此除了Frakcool的优秀答案之外,您还可以使用
do while
循环:

String nome;
int i = 0;
do {
    nome = keyboard.next();
    i++;
}
while(!nome.equalsIgnoreCase("fim") && i<10);
字符串名称;
int i=0;
做{
nome=键盘.next();
i++;
}


而(!nome.equalsIgnoreCase(“fim”)&&I问题是什么?该代码要求10次不需要
&&I相关:
for
while
不是函数,而是语句,更准确地说是循环语句。while
的循环是无限的。您想将其更改为
if
语句,只要求
fim
然后打电话给break;
如果发生了这种情况,请使用
if
语句问题是什么?该代码要求10次无需
&&i相关:
for
while
不是函数,而是语句,更准确地说是循环语句。while
的循环是无限的。您想将其更改为
if
语句,只要求
fim
和c所有
break;
如果发生这种情况,请使用
if
语句(请看我下面的回答)删除
,否则它会在除“fim”之外的任何内容上中断。
if
应为
if(nome.equalsIgnoreCase(“fim”))
没有
。我只能向downvoter介绍两个名字(?),你能解释一下原因吗?这样我可以改进我的答案。Thanks@CatarinaMota您可以使用method.Like
if(nome.length>=120){//如果长度大于或等于120,请在此处执行任何操作}
,如果答案解决了您的问题,请务必接受答案。删除
,否则它会破坏除“fim”之外的任何内容。否则需要+1分钟的编辑。如果
if
,则应改为
if(nome.equalsIgnoreCase(“fim”)
,不带
。我只能介绍两个名称(?)请你解释一下原因好吗?这样我可以改进我的答案。Thanks@CatarinaMota您可以使用method.Like
if(nome.length>=120){//如果长度大于或等于120,请在此处执行任何操作}
如果解答了您的问题,请务必接受答案。解释代码的作用总是好的,大多数情况下,解释比代码更有价值。@Frakcool当然您是对的,在大多数情况下,我都会先发布代码,让OP看一看并习惯,然后再准备带解释的编辑ven(我正在准备它)。谢谢你的建议。@Frakcool我编辑了我的答案,并作了适当的解释-你可能想看看。我已经对你的问题进行了投票,因为你展示了另一种解决问题的方法:)@Frakcool谢谢,现在我正在考虑如何在控制台中实现对用户输入的限制。如果我找到了某种方法,我会通知您。解释代码的作用总是很好的,大多数情况下,解释比代码更有价值。@Frakcool当然你是对的,在大多数情况下,我会先发布代码让OP看一看在我准备编辑并给出解释之前(我目前正在准备)。谢谢你的建议。@Frakcool我用正确的解释编辑了我的答案-你可能想看一下。我已经对你的问题进行了投票,因为你展示了另一种解决问题的方法:)@Frakcool谢谢,现在我正在考虑如何在控制台中实现对用户输入的限制。如果我找到某种方法,我会通知您。我将使用第一个。谢谢您的时间。我将使用第一个。谢谢您的时间。
String nome;
int i = 0;
while(i<10 && !(nome = keyboard.next()).equalsIgnoreCase("fim")) {
    i++;
    // Either handle nome here directly, or add it to a list for later handling.
}