在Java中检查字符串长度并使用do while

在Java中检查字符串长度并使用do while,java,do-while,Java,Do While,我想创建一个程序,在其中输入一个字符串,它会检查长度是否为9。如果是,它会发出一个信息,表示一切正常。如果不是,它将给出一条不是的消息,并提示用户再次输入字符串。在运行它时,我总是觉得这是错误的。我哪里做错了 import java.util.*; public class Sec { public static void main(String[] args) { Scanner Secnum = new Scanner(System.in); Syst

我想创建一个程序,在其中输入一个字符串,它会检查长度是否为9。如果是,它会发出一个信息,表示一切正常。如果不是,它将给出一条不是的消息,并提示用户再次输入字符串。在运行它时,我总是觉得这是错误的。我哪里做错了

import java.util.*;
public class Sec {
    public static void main(String[] args) {
        Scanner Secnum = new Scanner(System.in);
        System.out.println("Give Sec: ");
        String Sec = Secnum.nextLine();
        do{
            if (Sec.length()!= 9);
            System.out.println("Wrong lenght Sec,enter again");
            Secnum.nextLine();
        }while (Sec.length() == 9);
        System.out.println("Sec lenght okay");
    }
}

您正在终止if语句

if(秒长()!=9)

因此,无论是否为真,下一次打印总是执行

将故障逻辑放入
if
块中

if (Sec.length()!= 9) {
    // Print failure message
    // Other logic
}

您正在终止if语句

if(秒长()!=9)

因此,无论是否为真,下一次打印总是执行

将故障逻辑放入
if
块中

if (Sec.length()!= 9) {
    // Print failure message
    // Other logic
}

只要长度不是9,就需要请求一个新值

所以你的循环应该有这个条件。如果您的回答不正确,请进一步说明。如果Java中需要大括号,否则只会影响下一条语句。语句也只能是分号。所以你的if语句是完全无用的

为了使代码更加紧凑,可以去掉if并交换do-while循环。仅当条件为真时才会运行,无论条件如何,都不会在开始时运行一次

应该更好地工作的代码:

import java.util.*;

public class Sec {

  public static void main(String[] args) {
    Scanner secnum = new Scanner(System.in);
    System.out.println("Give Sec: ");
    String sec = secnum.nextLine();

    while (sec.length() != 9) {
      System.out.println("Wrong lenght Sec,enter again");
      secnum.nextLine();
    }

    System.out.println("Sec lenght okay");
  }
}

旁注:使用小写变量名。这是更好的代码样式:)

只要长度不是9,就需要请求一个新值

所以你的循环应该有这个条件。如果您的回答不正确,请进一步说明。如果Java中需要大括号,否则只会影响下一条语句。语句也只能是分号。所以你的if语句是完全无用的

为了使代码更加紧凑,可以去掉if并交换do-while循环。仅当条件为真时才会运行,无论条件如何,都不会在开始时运行一次

应该更好地工作的代码:

import java.util.*;

public class Sec {

  public static void main(String[] args) {
    Scanner secnum = new Scanner(System.in);
    System.out.println("Give Sec: ");
    String sec = secnum.nextLine();

    while (sec.length() != 9) {
      System.out.println("Wrong lenght Sec,enter again");
      secnum.nextLine();
    }

    System.out.println("Sec lenght okay");
  }
}

旁注:使用小写变量名。这是更好的代码样式:)

是否要继续循环,直到用户给出正确的输入?不,我不想。一旦它给出正确的输入,我将使用Sec进行其他计算。谢谢你你想继续循环直到用户给出正确的输入吗?不,我不想。一旦它给出正确的输入,我将使用Sec进行其他计算。谢谢你感谢geisterfurz007提供的所有提示和建议。正如我所说的,我是一个初学者,从一本书中自学(还有一本希腊文的书),所以我仍然错过了很多。不客气!每个人都是这样开始的;)如果答案有助于解决你的问题,考虑一下它的投票(当然还有其他你认为有帮助的)。如果答案完全回答了您的问题,请单击答案左侧的灰色复选标记接受答案。这将标志着这个问题为其他人解决,并将奖励我以及你!谢谢当然,我投了更高的票,但因为我的声誉(缺乏声誉),它没有表现出来。我会接受答案,太好了!再次感谢!感谢geisterfurz007提供的所有提示和建议。正如我所说的,我是一个初学者,从一本书中自学(还有一本希腊文的书),所以我仍然错过了很多。不客气!每个人都是这样开始的;)如果答案有助于解决你的问题,考虑一下它的投票(当然还有其他你认为有帮助的)。如果答案完全回答了您的问题,请单击答案左侧的灰色复选标记接受答案。这将标志着这个问题为其他人解决,并将奖励我以及你!谢谢当然,我投了更高的票,但因为我的声誉(缺乏声誉),它没有表现出来。我会接受答案,太好了!再次感谢!