ورود

View Full Version : خروج از حلقه For



mehrdad_hellboy
سه شنبه 26 خرداد 1394, 11:04 صبح
سلام
من مبتدی هستم
من این برنامه رو که تعدادی اطلاعات رو از ورودی میگیره و در نهایت تو خروجی چاپ میکنه رو با آرایه نوشتم

حالا :
1- چطوری میشه بگم که اگه کاربر end رو زد از حلقه خارج شو و دیگه اطلاعات نگیر


اینم کد هام





public static void main(String[] args) {
// TODO code application logic here
Scanner user_input = new Scanner(System.in);
ArrayList<String> name=new ArrayList<>();
ArrayList<String> family=new ArrayList<>();
ArrayList<String> sex=new ArrayList<>();
ArrayList<String> tel=new ArrayList<>();
ArrayList<String> carname=new ArrayList<>();
ArrayList<String> carmodel=new ArrayList<>();
ArrayList<String> carcolor=new ArrayList<>();
ArrayList<String> carpelak=new ArrayList<>();
ArrayList<String> taviz=new ArrayList<>();
ArrayList<String> tamir=new ArrayList<>();

name.add("first");



for(int i=0;i<name.size(); i++){
System.out.print("ENter name :"+i);
name.add(user_input.next());
System.out.print("ENter family :"+i);
family.add(user_input.next());
System.out.print("ENter jensiyat:"+i);
sex.add(user_input.next());
System.out.print("ENter telephone :"+i);
tel.add(user_input.next());
System.out.print("ENter car name :"+i);
carname.add(user_input.next());
System.out.print("ENter car model :"+i);
carmodel.add(user_input.next());
System.out.print("ENter car color :"+i);
carcolor.add(user_input.next());
System.out.print("ENter car pelak :"+i);
carpelak.add(user_input.next());
System.out.print("ENter car tamir :"+i);
tamir.add(user_input.next());
System.out.print("ENter car taviz :"+i);
taviz.add(user_input.next());
}
System.out.printf("%-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s",
"name , family , jensiyat , ");
for(int i=0;i<name.size(); i++){
System.out.print(name.get(i)+ family.get(i)+ sex.get(i)+ tel.get(i)+ carcolor.get(i)
+ carmodel.get(i)+carname.get(i)+ carpelak.get(i)+tamir.get(i)+taviz.get(i));
}
for(int i=0;i<taviz.size(); i++){
System.out.print(taviz.get(i));
}
for(int i=0;i<name.size(); i++){

}


}



ممنونم

vahid-p
سه شنبه 26 خرداد 1394, 16:47 عصر
به نظرم به جای اینکه برای هر بخش یک ArrayList با اسم جداگونه ای در نظر بگیری، یه آرایه ای از ArrayList ها درست کن ( یا اگر طول متغیر داره ArrayList ای از ArrayList ها )
برای خروج از حلقه هم کافیه در یک شرط اگر برقرار بود break کنی ( خطوط 16و17و18 که در یک حلقه while(true) قرار داره. میتونی از do while هم استفاده کنی. یا حتی خود while هیچ تفاوتی نداره )
مثلا :
Scanner user_input = new Scanner(System.in);
String[] labels = {"First Name", "Last Name", "Gender", "Tel. Num.",
"Car Name", "Car Model", "Car Color", "Car Plate",
"Car Repair Num.", "Car Exchange Num."};
ArrayList[] info = new ArrayList[labels.length];
for (int i = 0; i < 10; i++) {
info[i] = new ArrayList<String>();
}

while (true) {
for (int i = 0; i < info.length; i++) {
System.out.print("Enter " + labels[i] + " : ");
info[i].add(user_input.nextLine());
}
System.out.print("Enter y to quit: ");
if (user_input.next().toLowerCase().equals("y")) {
break;
}
}

int listSize = info[0].size();
for (int i = 0; i < listSize; i++) {
System.out.println("----------------------------");
for (int j = 0; j < info.length; j++) {
System.out.println(labels[j] + " : " + info[j].get(i));
}
}

mehrdad_hellboy
شنبه 30 خرداد 1394, 12:28 عصر
به نظرم به جای اینکه برای هر بخش یک ArrayList با اسم جداگونه ای در نظر بگیری، یه آرایه ای از ArrayList ها درست کن ( یا اگر طول متغیر داره ArrayList ای از ArrayList ها )
برای خروج از حلقه هم کافیه در یک شرط اگر برقرار بود break کنی ( خطوط 16و17و18 که در یک حلقه while(true) قرار داره. میتونی از do while هم استفاده کنی. یا حتی خود while هیچ تفاوتی نداره )
مثلا :
Scanner user_input = new Scanner(System.in);
String[] labels = {"First Name", "Last Name", "Gender", "Tel. Num.",
"Car Name", "Car Model", "Car Color", "Car Plate",
"Car Repair Num.", "Car Exchange Num."};
ArrayList[] info = new ArrayList[labels.length];
for (int i = 0; i < 10; i++) {
info[i] = new ArrayList<String>();
}

while (true) {
for (int i = 0; i < info.length; i++) {
System.out.print("Enter " + labels[i] + " : ");
info[i].add(user_input.nextLine());
}
System.out.print("Enter y to quit: ");
if (user_input.next().toLowerCase().equals("y")) {
break;
}
}

int listSize = info[0].size();
for (int i = 0; i < listSize; i++) {
System.out.println("----------------------------");
for (int j = 0; j < info.length; j++) {
System.out.println(labels[j] + " : " + info[j].get(i));
}
}

خیلی ممنونم ازتون
مشکلم حل شد
فقط توی خروجی میخواهم بعضا خروجی های متفاوت چاپ کنم
مثل این اما
یه ارروی میده و نمیشه



int listSize = info[0].size();

for (int i = 0; i < listSize; i++) {
System.out.println("----------------------------");
System.out.printf("%-10s %-10s %-10s %-10s %-10s %-10s %n",
"First name","Last Name","Gender","Phone","Car Name","Car Model" );
for (int j = 0; j < info.length; j++) {
System.out.println("%-10s %-10s %-10s %-10s %-10s %-10s %n",
First name[j],Last Name[j],Gender[j],Phone[j],Car Name[j],Car Model[j] );