उदाहरण के लिए, मैं एक ऐसा फ़ंक्शन बनाना चाहता हूं जो किसी भी संख्या (ऋणात्मक, शून्य, या सकारात्मक) को वापस कर सके।जावा फ़ंक्शन कैसे लिखें जो एकाधिक डेटा प्रकारों के मान देता है?
हालांकि, कुछ अपवादों के आधार पर, मैं समारोह Boolean
FALSE
वापस जाने के लिए वहाँ एक रास्ता एक समारोह है कि एक int
या एक Boolean
लौट सकते हैं लिखने के लिए है चाहते हैं?
ठीक है, इसलिए इसे बहुत सारी प्रतिक्रियाएं मिली हैं। मैं समझता हूं कि मैं बस गलत तरीके से समस्या का सामना कर रहा हूं और मुझे throw
विधि में कुछ प्रकार की अपवाद होना चाहिए। बेहतर उत्तर पाने के लिए, मैं कुछ उदाहरण कोड प्रदान करने जा रहा हूं। कृपया मजाक न करें :)
public class Quad {
public static void main (String[] args) {
double a, b, c;
a=1; b=-7; c=12;
System.out.println("x = " + quadratic(a, b, c, 1)); // x = 4.0
System.out.println("x = " + quadratic(a, b, c, -1)); // x = 3.0
// "invalid" coefficients. Let's throw an exception here. How do we handle the exception?
a=4; b=4; c=16;
System.out.println("x = " + quadratic(a, b, c, 1)); // x = NaN
System.out.println("x = " + quadratic(a, b, c, -1)); // x = NaN
}
public static double quadratic(double a, double b, double c, int polarity) {
double x = b*b - 4*a*c;
// When x < 0, Math.sqrt(x) retruns NaN
if (x < 0) {
/*
throw exception!
I understand this code can be adjusted to accommodate
imaginary numbers, but for the sake of this example,
let's just have this function throw an exception and
say the coefficients are invalid
*/
}
return (-b + Math.sqrt(x) * polarity)/(2*a);
}
}
आपके पास पहले से ही कुछ जवाब हैं, इसलिए आप इसे देख सकते हैं, लेकिन अच्छा नहीं। मैं आपको यह बताने की सलाह दूंगा कि आपको इसके लिए क्या चाहिए। तो आपको शायद एक अच्छा समाधान मिल जाएगा। बीटीडब्लू।, अपवाद फेंककर भी अपवाद का प्रतिनिधित्व किया जा सकता है। रिटर्निंग बूलियन.एफएएलएसई और कभी भी बूलियन लौटाना नहीं। टीआरयूई एक कोड गंध है, फाल्स की बजाय शून्य लौटने के साथ इंटीजर लौटने पर विचार करें। – maaartinus
वापसी मूल्य का उपयोग सी-शैली प्रोग्रामिंग है। ऐसा नहीं है कि इसमें कुछ भी गलत है, लेकिन अपवादों पर विचार करें। यही वह है जिसे वे बनाते हैं। – duffymo