Member 13274362 Ответов: 1

Как проверить состояние в приведенном ниже коде?


import java.util.Scanner;

public class Parent {

	public static void main(String[] args) 
	{
		Scanner scan=new Scanner(System.in);
		
		System.out.println("enter the 1st no");
		int p=scan.nextInt();
		
		System.out.println("enter the 2nd no");
		int q=scan.nextInt();
		
		System.out.println("enter the 3rd no");
		int r=scan.nextInt();
		
		System.out.println("enter the 4th no");
		int s=scan.nextInt();
		
		Sub obj=new Sub();
		Sub obj1=new Sub(p,q);
		Sub obj2=new Sub(p,q,r);
		Sub obj3=new Sub(p,q,r,s);
		
		obj.get();
		obj1.get();
		obj2.get();		
		obj3.get();
		
		
		
	 }

}




<pre>import java.util.Scanner;

public class Sub 
{
	int w=1,x=1,y=1,z=1;
	public Sub()
	{
		x=5;
		y=4;
	}
	public Sub(int a,int b)
	{
		x=a;
		y=b;
	}
	public Sub(int a,int b,int c)
	{
		x=a;
		y=b;
		w=c;
	}
	public Sub(int a,int b,int c,int d)
	{
		x=a;
		y=b;
		w=c;
		z=d;
		
	}
	public void get()
	{
		Scanner scan=new Scanner(System.in);
		System.out.println("choose the no. of operation you want to do");
		System.out.println("  1 --> +  \n  2--> - \n  3--> * \n  4--> /");
		int k=scan.nextInt();
		
		switch(k)
		
		{
		case 1: 
			
			double c22 = w+x+y+z;
			
			int i=(w==1&&x==5&&y==4&&z==1)?System.out.println("result for 1st"):
         //ERROR : a,b,c are not defined.
			(w==1&&x==a&&y==b&&z==1)?System.out.println("result for 2nd"):
			(w==c&&x==a&&y==b&&z==1)?System.out.println("result for 3nd"):
					System.out.println("result for 4th");	
			
			 	System.out.println(i);
			
			System.out.println("addition of two no. is :  " +c22);
			break;
		
		case 2: 
			
			double c1 = w-x-y-z;

			int j=(w==1&&x==5&&y==4&&z==1)?System.out.println("result for 1st"):
	//ERROR : a,b,c are not defined.
			(w==1&&x==a&&y==b&&z==1)?System.out.println("result for 2nd"):
				(w==c&&x==a&&y==b&&z==1)?System.out.println("result for 3nd"):
					System.out.println("result for 4th");	
				
				System.out.println(j);
				
			System.out.println("subtration of two no. is :  " +c1);
			break;
	
		case 3: 
			
			double c11 = w*x*y*z;
			
			int h=(w==1&&x==5&&y==4&&z==1)?System.out.println("result for 1st"):
	//ERROR : a,b,c are not defined.
		(w==1&&x==a&&y==b&&z==1)?System.out.println("result for 2nd"):
				(w==c&&x==a&&y==b&&z==1)?System.out.println("result for 3nd"):
					System.out.println("result for 4th");	

				System.out.println(h);
				
			System.out.println("multiplication of two no. is :  " +c11);
			break;
		
		case 4: 
			
			double f = w/x/y/z;
			
			int g=(w==1&&x==5&&y==4&&z==1)?System.out.println("result for 1st"):
           //ERROR : a,b,c are not defined.
				(w==1&&x==a&&y==b&&z==1)?System.out.println("result for 2nd"):
				(w==c&&x==a&&y==b&&z==1)?System.out.println("result for 3nd"):
					System.out.println("result for 4th");	
				
				System.out.println(g);
				
			System.out.println("division of two no. is :  " +f);
			break;
			
        default :
        	System.out.println("you choose wrong option.\n     "
        			+ "     please i request you to choose one of the option listed above  !!");
	//IMPORTANT	  
        	get();
        	break;
		}
	}
}



Что я уже пробовал:

в приведенном выше коде я хочу проверить, совпадают ли входные данные с тем конструктором, для которого я использую метод switch и троичное условие, но в троичном условии, когда я проверяю, соответствует ли "w==a" и т. д., Он не проверяет его..


как я могу проверить такое состояние?

wseng

что я,j,h, g должен напечатать ?

Member 13274362

Оператор печати, т. е. результат для 1-го / / результат для 2-го | / результат для 3-го || результат для 4-го !

wseng

Тип данных с int можно только напечатать номер.

Member 13274362

Я изменил его на String, но это не проблема..
Ошибка заключается в том,что когда я проверяю (w,x,y,z) содержит (c,a,b, d), он не проверяет его, о чем я упоминал в комментарии.

Вопрос в том, как я могу устранить эту ошибку ?

wseng

Но почему вы назначили 1 w,x,y,z?

Member 13274362

позвольте мне объяснить, подождите...

смотрите, у меня есть инициализация x, y,w, z с 1;
и

у меня есть конструктор make 4 с разными параметрами..
1-й - & gt; дефолт ! ; в котором будут назначены значения по умолчанию, то есть w=1,x=5,y=4,z=1 .
2-й - > 2 параметра, т. е. p & q, которые являются пользовательским вводом, который будет присвоен a & amp; b, а затем присвоен x и y.
3-й - > 3 параметра, т. е. аналогично 2 параметрическим конструкторам назначит p,q & r a,b & c,а затем x, y & w соответственно.
4-й - > 4 параметра, т. е. аналогичные приведенным выше, т. е. p,q,r,s к a,b,c,d,а затем к x,y,w, z соответственно.

верно ?


затем в методе get ...
в switch я сделал базовый калькулятор, то есть сложение, вычитание , умножение и деление
затем я хочу напечатать оператор, т. е. ("результат для 1-го | / результат для 2-го | / результат для 3-го | / результат для 4-го"), для которого я использую тернарный оператор, где я хочу проверить, если :
-- конструктор по умолчанию вызывается затем print ("результат для 1-го")
--2 параметрический конструктор называется print ("результат для 2-го")
--3 параметрический конструктор вызывается затем print ("результат для 3-го")
--4 параметрический конструктор называется print ("результат для 4-го")

но когда я проверяю это условие, оно не разрешает a, b, c, d в каждом случае .... которые используются в конструкторе,который хранит пользовательский ввод и присваивает x,y,w, z соответственно..!



вот в чем проблема ....

скажите, как я могу это проверить ???

wseng

Вы проверили мой ответ ?

1 Ответов

Рейтинг:
1

wseng

1. ошибка: a, b, c не определены

Вы должны установить int a,b,c в глобальном масштабе

2. назначьте значение параметра a,b,c,d к переменной a,b,c,d который вы установили в глобальном

public Sub(int a, int b, int c, int d) {
      this.a=a;
      this.b=b;
      this.c=c;
      this.d=d;
   }

3. Измените свой ocde, как показано ниже. int не удается напечатать String result

switch (k)
       {
           case 1:
               double c22 = w + x + y + z;
               if (w == 1 && x == 5 && y == 4 && z == 1) {
                   System.out.println("result for 1st");
               }
               else if(w == 1 && x == a && y == b && z == 1)
              {
               System.out.println("result for 2nd");
               }
               else if(w == c && x == a && y == b && z == 1)
               {
               System.out.println("result for 3nd");
               System.out.println("result for 4th");
               }
               else
               {
               System.out.println("no matched");
               }
           System.out.println("addition of two no. is :  " + c22);
           break;
           .....
        }