Как я могу отобразить значения, которые я ввел, используя инстанцирование? - PullRequest
0 голосов
/ 15 января 2020

Как изменить код в else if, чтобы все, что я ввел в if, отображалось в условии 2?

import java.util.*;

public class REPORTS
{  
       public static void main(String[]args)
   {
     int Studentid,equipid,quantity,studentid,equipid1;
     String Studentname,Studentcourse,Studentlevel,equipmentname,reservationdate,returndate;

      STUDENT stud=new STUDENT(1234,"abc","abc","abc");
      EQUIPMENT equip;
      RESERVATION reserve;

      Scanner in = new Scanner(System.in);
      int x = choices();

         if(x==1)
         {             
         System.out.println("Enter Student ID:");
         Studentid=in.nextInt();
         in.nextLine();
         System.out.println("Enter Student Name:");
         Studentname=in.nextLine();
         System.out.println("Enter Student Course:");
         Studentcourse=in.nextLine();
         System.out.println("Enter Student Level:");
         Studentlevel=in.nextLine();   

         stud.setID(Studentid);
         stud.setName(Studentname);
         stud.setCourse(Studentcourse);
         stud.setLevel(Studentlevel);
         }
         else if(x==2)
         {
            stud.display();                 
         }
       }

Я думаю об использовании цикла, но я не знаю, как правильно l oop, чтобы я мог получить данные, которые вводит пользователь в операторе if.

Я изменил свой if else на switch и попробовал while l oop. Но программа работает бесконечно, и вместо отображения того, что я ввожу, она спрашивает имя ученика:

while(x!=7)
   {
     switch(x)
     {
        case 1:
     {
        stud.getData();
        choices();    
        break;
     }
        case 2:                     
     {
        stud.display(); 
        break;
     }
   }    
}

1 Ответ

1 голос
/ 15 января 2020

Несколько начальных точек:

public static void main(String[]args)
   {
     int Studentid,equipid,quantity,studentid,equipid1;
     String Studentname, Studentcourse, Studentlevel, equipmentname, 
     reservationdate, returndate;    
      STUDENT stud=new STUDENT(1234,"abc","abc","abc");
      ...

Переименуйте ваш класс СТУДЕНТА в ученика. Кроме того, вам не нужны все эти локальные переменные, они просто затрудняют чтение вашего кода. Предоставить конструктор по умолчанию для ученика

    public static void main(String[]args)
       {
         Student stud=new Student(); // call the default constructor, don't enter bogus data

          Scanner in = new Scanner(System.in);
          int x = choices();
          while (x != 7) {
          switch(x) {
            case 1:
             System.out.println("Enter Student ID:");
             stud.setID(in.nextInt());
             in.nextLine();
             System.out.println("Enter Student Name:");
             stud.setName(in.nextLine());
             System.out.println("Enter Student Course:");
             stud.setCourse(in.nextLine());
             System.out.println("Enter Student Level:");
             stud.setLevel(in.nextLine());
             break;
            case 2: stud.display(); break;
           }
          // this must be inside the loop!!
          x = choices();
       }
  }
...