Как проверить состояние в приведенном ниже коде?
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
Вы проверили мой ответ ?