Java for循环在执行之前读取两次

Java for循环在执行之前读取两次,java,for-loop,Java,For Loop,Wen每当我运行这个程序时,for循环总是打印出它里面的消息2次,然后再让我将任何内容分配给它里面的字符串,但是它会增加I变量 以下是循环: String rua; for(int i = 1 ; i < horizontal ; i++ ){ do{ System.out.println("Introduza os "+ vertical + " valores da rua " + i); rua = stringTest("erro", sc

Wen每当我运行这个程序时,for循环总是打印出它里面的消息2次,然后再让我将任何内容分配给它里面的字符串,但是它会增加
I
变量

以下是循环:

String rua;

for(int i = 1 ; i < horizontal ; i++ ){
    do{
        System.out.println("Introduza os "+ vertical + " valores da rua " + i);
        rua = stringTest("erro", sc);
    } while(rua.length() != vertical);
}    

}

首先,您必须检查字符串是否仅填充了字符“-”或“.”,并且您没有引用,但还需要检查长度是否正确。 为此,您必须创建方法来验证:(不完整代码)

String rua=verificatamahnosimbolos(sc,垂直);
验证曼希姆博洛斯(扫描仪sc,int垂直){
布尔误差=真;
做{
erro=真;
系统输出打印(“导入操作系统”+垂直+valores da rua”+i);
字符串linha=sc.nextLine();
如果(验证卡塔曼霍(林哈,维特凯斯))错误=错误;
else System.out.println(“Tamanho errado”);
如果(verifycasimbolos(linha))erro=false;
else System.out.println(“Simbolo errado”);
}while(erro);
验证卡塔曼霍(字符串linha,int verticais){
if(linha.length()==verticais)返回true;
否则返回false
}
验证卡辛博洛斯(字符串linha){
布尔误差=真;
for(int c=0;c
String rua = verificaTamanhoSimbolos(sc, vertical);

verificaTamanhoSimbolos(Scanner sc, int vertical) {
boolean erro = true;
do{
erro = true;
System.out.println("Introduza os "+ vertical + " valores da rua " + i);
String linha = sc.nextLine();
if(verificaTamanho(linha, verticais)) erro = false;
else System.out.println("Tamanho errado");
if(verificaSimbolos(linha)) erro = false;
else System.out.println("Simbolo errado");
}while(erro);

verificaTamanho(String linha, int verticais) {
if(linha.length() == verticais) return true;
else return false
}

verificaSimbolos(String linha) {
boolean erro = true;
for (int c = 0; c < linha.length(), c++) {
if (linha.charAt(c) != '-' && linha.charAt(c) != '.') erro = false;
}
return erro;
}