Как я могу заставить этот цикл работать? - PullRequest
0 голосов
/ 30 декабря 2018

Мой первый цикл for не работает.Я пытался пока цикл, но его тоже не сработало.Что не так в этом коде? Внутри программы цикла создайте объект внутри массива объектов и получите переменные от пользователя

package kisi_ödev;


import java.util.Scanner;//input almak için kullanılacak olan sınıf için çağrılan kütüphana   class kisi   //kisi sınıfı {   public long kn;          //private değişkenkleri public yaptım         public String ad, soyad;         public int yas; } /**  *  * @author OZAN  */ public class Kisi_ödev {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int size_of_objectList=1;//nesne dizisinin boyutu
        Scanner input=new Scanner(System.in);//Scanner sınıfı yeni nesnesi
        kisi bilgiler[]=new kisi[size_of_objectList];
        for(int i=0;i<bilgiler.length;i++)//This is not working
        {
            bilgiler[i]=new kisi();
            System.out.println("kimlik numarasını giriniz:");
            bilgiler[i].kn=input.nextLong();
            if(bilgiler[i].kn==0){
                for(int j=0;j<bilgiler.length;j++){
                    if(bilgiler[j]!=null){

                    System.out.println("****************");
                    System.out.print("kimlik numrası: ");
                    System.out.print(bilgiler[j].kn+"   ");
                    System.out.print("İsim: ");
                    System.out.print(bilgiler[j].soyad+", ");
                    System.out.print(bilgiler[j].ad+"  ");

                    System.out.println(bilgiler[j].yas+"  ");
                    System.out.println("****************");

                    }
                }

                System.out.println("shutdown");
                break;
                }
            System.out.println("İsminizi giriniz:");
            bilgiler[i].ad=input.next();
            System.out.println("Soyisminizi giriniz:");
            bilgiler[i].soyad=input.next();
            System.out.println("Yaşınızı giriniz:");
            bilgiler[i].yas=input.nextInt();

        }
    }
}

1 Ответ

0 голосов
/ 30 декабря 2018

Вы должны определить класс, и вы должны убедиться, что входные данные длинные, int ... как вы хотите;в противном случае ваша программа завершится с исключением.

Это исправленная версия вашего исходного кода:

package kisi_ödev;

import java.util.Scanner;

public class LoopTest {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int size_of_objectList = 2;//nesne dizisinin boyutu
        Scanner input = new Scanner(System.in);//Scanner sınıfı yeni nesnesi
        kisi bilgiler[] = new kisi[size_of_objectList];

        try {
            for (int i = 0; i < bilgiler.length; i++)//This is not working
            {
                bilgiler[i] = new kisi();
                System.out.println("kimlik numarasını giriniz:");
                bilgiler[i].kn = input.nextLong();
                if (bilgiler[i].kn == 0) {
                    for (int j = 0; j < bilgiler.length; j++) {
                        if (bilgiler[j] != null) {

                            System.out.println("****************");
                            System.out.print("kimlik numrası: ");
                            System.out.print(bilgiler[j].kn + "   ");
                            System.out.print("İsim: ");
                            System.out.print(bilgiler[j].soyad + ", ");
                            System.out.print(bilgiler[j].ad + "  ");

                            System.out.println(bilgiler[j].yas + "  ");
                            System.out.println("****************");

                        }
                    }

                    System.out.println("shutdown");
                    break;
                }
                System.out.println("İsminizi giriniz:");
                bilgiler[i].ad = input.next();
                System.out.println("Soyisminizi giriniz:");
                bilgiler[i].soyad = "Yaşınızı giriniz:";
                bilgiler[i].yas = input.nextInt();
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Поскольку у меня нет класса kisi, я создал пример класса:

class kisi {

    public long kn;
    public String ad;
    public String soyad;
    public int yas;

}

Вы определили количество циклов с помощью переменной size_of_objectList;В моей версии я обновил его до 2.

Это пример выходных данных:

kimlik numarasını giriniz:
1
İsminizi giriniz:
2
Soyisminizi giriniz:
3
Yaşınızı giriniz:
4
kimlik numarasını giriniz:
0
****************
kimlik numrası: 0   İsim: 3, 2  4  
****************
****************
kimlik numrası: 0   İsim: 3, 2  4  
****************
shutdown

Мы прекрасно видим 2 цикла и отключение при ответе 0 на первый входloop.

Благодаря try / catch вы увидите, что исключение при синтаксическом анализе приводит к сбою вашей программы;например, набрав «не числовое значение»:

kimlik numarasını giriniz:
not a numerical value
java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextLong(Scanner.java:2222)
    at java.util.Scanner.nextLong(Scanner.java:2182)
    at kisi_ödev.LoopTest.main(LoopTest.java:20)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...