Системе требуется 2 входа вместо 1JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Системе требуется 2 входа вместо 1

Сообщение Anonymous »

Когда он сканирует шкафчики, он запрашивает адрес, и это нормально, но когда он запрашивает количество шкафчиков (nextInt), он запрашивает 1 раз, когда код метода заканчивается, а затем запрашивает снова (те, что распечатаны 2 раза, предназначены для отладки )
вот что он меня спрашивает:
[img]https://i .sstatic.net/nSBFLXgP.png[/img]

Я пытался просканировать количество шкафчиков, но он сканирует 2 раза, и я не знаю, почему
это мой главная

Код: Выделить всё

import java.util.ArrayList;
import java.util.InputMismatchException;
import  java.util.Scanner;
public class Main {

public static void main(String[] args) {
int a=-1;

Scanner scanner = new Scanner(System.in);
while(a!=0) {
System.out.println("Επιλεξτε τι θελετε να κανετε\n");
System.out.println("0.Εξοδος\n1.Καταχωρηση Στοιχιων(διαχειριστής)\n2.Καταχωριση Παραγγελιας(διαχειριστή/ χρήστη)\n");
boolean temp=true;
do {

try {
temp=true;
a = scanner.nextInt();

} catch (InputMismatchException e) {
temp=false;
System.out.println("Wrong input entered try again");

}
scanner.nextLine();
} while (!temp ||(a < 0 || a > 3));
temp=true;
switch (a) {
case 1:
int count=0;
int apantisi=1;
kataxwrisiStoixion kata = new kataxwrisiStoixion();

while(apantisi==1) {
if (count!=0) {
do {
try {
temp = true;
apantisi = scanner.nextInt();

} catch (InputMismatchException e) {
temp = false;
System.out.println("Wrong input entered try again");

}
scanner.nextLine();
} while (!temp && apantisi == 0);
}
kata.kataxwrisi();
count+=1;
}

case 2:

case 3:

}
}

}
}

У меня проблемы с этим классом

Код: Выделить всё

import java.util.ArrayList;
import java.util.InputMismatchException;
import  java.util.Scanner;
public class kataxwrisiStoixion {
private Scanner scanner= new Scanner(System.in);
private ArrayList Items = new ArrayList();
private ArrayList
 Pelates = new ArrayList();
private ArrayList Odhgoi = new ArrayList();
private ArrayList lockerLocations= new ArrayList();
public boolean isAlpha(String name) {
char[] chars = name.toCharArray();

for (char c : chars) {
if(!Character.isLetter(c)) {
return false;
}
}

return true;
}
public String scan() {
String a="";
boolean temp=true;
do {
if(!isAlpha(a)) {
System.out.println("The input provided isnt a letter try again\n");
}
try {
temp=true;
a = scanner.nextLine();

} catch (InputMismatchException e) {
temp=false;
System.out.println("Wrong input entered try again\n");
scanner.nextLine();
}

} while(!temp && !isAlpha(a) );

return a;

}
public ArrayList getItems() {
return Items;
}

public ArrayList getPelates() {
return Pelates;
}

public ArrayList getOdhgoi() {
return Odhgoi;
}
public ArrayList  getLockerLocations() {
return lockerLocations;
}

public void kataxwrisi(){
int selection=0;
System.out.println("Επιλεξτε τι θελετε να καταχωρισετε\n");
System.out.println("1.Lockers\n2.προιοντα\n3.Οδηγους");
boolean temp=true;
do {
try{
temp=true;
selection= scanner.nextInt();

}catch (InputMismatchException e) {
temp=false;
System.out.println("Wrong input entered try again");

}
scanner.nextLine();
} while (!temp || (selection3));

if (selection==1){
this.s1();
}
else if (selection==2){
this.s2();
}
else {
this.s3();
}

}
private void s1(){
boolean temp;
String address="";
int lockerNum=-1;

System.out.println("Επιλεξατε lockers...\n");
System.out.println("Καταχωριστε την διευθυνση του locker:");
address=scan();
System.out.println("Καταχωριστε το πληθος των lockers:");
do {
try {
temp = true;
lockerNum = scanner.nextInt();

} catch (InputMismatchException e) {
temp=false;
System.out.println("Wrong input entered try again");

}
scanner.nextLine();
} while (!temp);

System.out.println("Διεύθυνση locker: " + address);
System.out.println("Αριθμός locker: " + lockerNum);

boolean[] lockers = new boolean[lockerNum];
lockerLocation lockersLocations= new lockerLocation(address,lockerNum,lockers);
getLockerLocations().add(lockersLocations);

System.out.println("Διεύθυνση locker: " + address);
System.out.println("Αριθμός locker: "  + lockerNum);
}
private void s2(){
boolean temp=false;
String barcode="";
String name="";
String companyName="";
int category=1;

System.out.println("Επιλεξατε προιοντα...\n");
System.out.println("Καταχωριστε το barcode του προιοντος:");
barcode=scan();

System.out.println("\nΚαταχωριστε το ονομα του προιοντος:");
name=scan();

System.out.println("\nΚαταχωριστε το ονομα εταιριας του προιοντος:");
companyName=scan();

System.out.println("\nΚαταχωριστε την κατηγορια του προιοντος(1-4):");
do {
try {
if (temp || (category4) ){
System.out.println("Wrong input entered try again");
}
temp = true;
category = scanner.nextInt();

} catch (InputMismatchException e) {
temp=false;

}
scanner.nextLine();
} while (!temp || (category4));

Item item= new Item(barcode,name,companyName,category);
getItems().add(item);
}

private void s3(){
boolean temp=true;
String name="";
String surName="";
String address="";
String email="";
long AFM=0;
String pinakida="";
boolean metafora=false;
System.out.println("Επιλεξατε οδηγους...");
System.out.println("\nΚαταχωριστε το ονομα του οδηγου:");
name=scan();

System.out.println("\nΚαταχωριστε το επιθετο του οδηγου:");
surName=scan();

System.out.println("\nΚαταχωριστε το διευθυνση του οδηγου:");
address=scan();

System.out.println("\nΚαταχωριστε το email του οδηγου:");
email=scan();

System.out.println("\nΚαταχωριστε το ΑΦΜ του οδηγου:");
do {
try {
temp = true;
AFM = scanner.nextLong();

} catch (InputMismatchException e) {
temp=false;
System.out.println("Wrong input entered try again");

}
scanner.nextLine();
} while(!temp);

System.out.println("\nΚαταχωριστε την πινακιδα του οδηγου:");
pinakida=scan();

System.out.println("\nΚαταχωριστε αν μεταφερει προιοντα ο οδηγος(true/false):");
do {
try {
temp = true;
metafora = scanner.nextBoolean();

}catch(InputMismatchException e) {
temp=false;
System.out.println("Wrong input entered try again");

}
scanner.nextLine();
}while(!temp);

Odhgos odhgos= new Odhgos(name,surName,address,email,AFM,pinakida,metafora);
getOdhgoi().add(odhgos);
}

}

проблема в методе s1()


Подробнее здесь: https://stackoverflow.com/questions/785 ... stead-of-1
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»