Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
✅ Practice + Quiz  ·  Lesson 26

50 Java Practice Programs

इन 67 Java अभ्यास programs का उपयोग कैसे करें

यह page एक अभ्यास-पुस्तिका है, theory वाला पाठ नहीं। सभी 67 programs Scanner class से input लेते हैं, असली उत्तर छापते हैं, और हर program के नीचे कंपाइलर खोलें ↓ बटन है जो उसी के नीचे एक मुफ़्त online Java compiler खोल देता है, जिसमें code पहले से भरा होता है। न कुछ install करना, न कोई sign up।

मैं विद्यार्थियों से इसे ऐसे इस्तेमाल करने को कहता हूँ। प्रश्न पढ़िए, code को ढक दीजिए, और दस मिनट तक ख़ुद लिखने की कोशिश कीजिए — कॉपी में या compiler में। उसके बाद ही हल से मिलाइए। जो विद्यार्थी बस copy करके चला देते हैं, वे हफ़्ते भर में तर्क भूल जाते हैं; जो दस मिनट जूझते हैं, उन्हें वह तरकीब बरसों याद रहती है।

✅ इस page का हर नमूना run, program को सच में compile करके और दिखाए गए input के साथ चलाकर बनाया गया है — हाथ से टाइप नहीं किया गया।

हर program online चलाइए — मुफ़्त, बिना install

हर program के नीचे कंपाइलर खोलें ↓ बटन है। उसे दबाते ही उसी program के ठीक नीचे पूरा Java compiler (OneCompiler) खुल जाता है, और program पहले से editor में होता है। फिर:

  1. नमूना input वाले box में input कॉपी करें दबाइए।
  2. Compiler में STDIN / I/O tab खोलकर input वहाँ चिपकाइए।
  3. Run दबाइए। आपका output इस page के नमूना run से मिलना चाहिए।
  4. अब जान-बूझकर उसे बिगाड़िए — कोई संख्या बदलिए, कोई कोष्ठक हटाइए, कोई शर्त उलटिए — और फिर चलाइए। असली सीखना यहीं होता है।
💡 हर class का नाम Main क्यों है? Online compiler आपका code Main.java नाम से save करते हैं, और Java की शर्त है कि public class का नाम उसकी file के नाम जैसा हो। अपने computer पर आप class का नाम Demo रख सकते हैं — बस file को Demo.java नाम से save कीजिए।

Scanner से input पढ़ना: 30 सेकंड में दोहराव

Methodक्या पढ़ता हैउदाहरण input
nextInt()पूर्ण संख्या (int)25
nextLong()बड़ी पूर्ण संख्या (long)10000000000
nextDouble()दशमलव संख्या7.5
next()अगले space तक एक शब्दAman
nextLine()पंक्ति का बाक़ी हिस्सा, spaces सहितAman Verma

एक जाल में लगभग हर कोई एक बार फँसता है: nextInt() के बाद nextLine() ख़ाली string लौटाता है, क्योंकि आपने जो Enter दबाया था वह input में अभी भी पड़ा है। उसे फेंकने के लिए एक बार sc.nextLine(); लिखिए। पूरी बात Scanner से user input वाले पाठ में है।

सामान्य गणना वाले programs (1–10)

शुरुआती अभ्यास। ये आसान दिखते हैं, पर हर एक में एक छोटा सबक छिपा है — पूर्णांक भाग, overflow, गोल करना, शून्य से भाग। चलाने से पहले हर program के ऊपर लिखी एक पंक्ति ज़रूर पढ़िए।

If-else और if-else-if programs (11–20)

निर्णय लेना। हर बार ख़ुद से पूछिए: शर्तें किस क्रम में जाँचूँ? इस भाग की आधी ग़लतियाँ शर्तों को ग़लत क्रम में जाँचने से आती हैं।

Loop programs (21–28)

Loop काम को दोहराता है। कोई भी loop लिखने से पहले काग़ज़ पर तीन सवालों के जवाब लिखिए: कहाँ से शुरू, कब रुकेगा, और हर बार क्या बदलेगा? "क्या बदलता है" का सबसे अच्छा उदाहरण फिबोनाची श्रेणी है — दो variables साथ-साथ आगे खिसकते हैं।

फिबोनाची: हर पद = पिछले दो का योगश्रेणी 0, 1, 1, 2, 3, 5, 8, 13 में 2 + 3 = 5 और 3 + 5 = 8 दिखाया गया है।फिबोनाची: हर पद = पिछले दो का योग0112358132 + 3 = 53 + 5 = 8a, b आगे खिसकते हैं: a = b; b = next
कॉपी के पन्ने पर फिबोनाची: हर नया पद पिछले दो पदों का योग है।

विशेष संख्या programs (29–40)

Reverse, palindrome, Armstrong, perfect, prime, strong, neon, automorphic, Harshad, spy — यही वे संख्या-programs हैं जो स्कूल की practical file, viva और नौकरी के interview में आते हैं। अच्छी ख़बर यह है कि लगभग सभी code की उन्हीं दो पंक्तियों पर टिके हैं।

दो पंक्तियों की तरकीब: % 10 और / 10संख्या 1234 पर % 10 आख़िरी अंक 4 देता है और / 10 उसे हटाकर 123 बनाता है।दो पंक्तियों की तरकीब: % 10 और / 101234n % 10 → 4आख़िरी अंक मिल गयाn / 10 → 123आख़िरी अंक हटा दियाn के 0 होने तक दोहराइए1234 → 123 → 12 → 1 → 0
लगभग हर संख्या-program के पीछे की दो पंक्तियाँ: % 10 आख़िरी अंक लेता है, / 10 उसे हटाता है।

मेरी कक्षा की कॉपी से

यह reverse संख्या और palindrome वाला program है, ठीक वैसा जैसा मैंने कक्षा की तैयारी करते हुए अपनी कॉपी में लिखा था, और अगले पन्ने पर n = 123 का dry run है। गोले में लिखे क़दम देखिए: हर चक्कर में आख़िरी अंक rev में पहुँचता है और n से वह अंक हट जाता है, जब तक n शून्य होकर loop ख़त्म न हो जाए।

कॉपी में हाथ से लिखा Java program: Scanner से संख्या लेकर उसे उलटना और palindrome जाँचना
कॉपी का पन्ना 1: reverse संख्या और palindrome की जाँच, हाथ से लिखा हुआ।
n = 123 के लिए reverse संख्या का हाथ से लिखा dry run, तीन चक्करों में rev 3, 32 और 321 बनता है
कॉपी का पन्ना 2: n = 123 का dry run — तीन चक्कर, फिर n = 0 और loop ख़त्म।
✍️ सच्ची बात: हाथ से लिखे version में दो चूकें हैं जिन्हें compiler पकड़ लेगा — variable r कहीं declare नहीं हुआ, और class का नाम Demo है, जिसे online compiler नहीं मानते। नीचे टाइप किए programs में दोनों ठीक हैं। ऐसी चूकें पकड़ना ख़ुद में अच्छा अभ्यास है।
Palindrome: n की तुलना उलटी संख्या से121 उलटकर भी 121 है, इसलिए palindrome; 123 उलटकर 321 बनता है, इसलिए नहीं।Palindrome: n की तुलना उलटी संख्या से121rev = 121121 == 121palindrome है123rev = 321123 ≠ 321palindrome नहींध्यान: loop से पहले t = n बचा लीजिए — loop n को 0 कर देता है।
Palindrome की जाँच बस इतनी है: "संख्या उलटो और मिलाओ"।
Armstrong संख्या: 153153 के अंकों के घन जोड़ने पर 1 + 125 + 27 = 153 मिलता है।Armstrong संख्या: 15311³ = 155³ = 12533³ = 271 + 125 + 27 = 153= वही संख्याऔर Armstrong संख्याएँ3 अंक: 153, 370, 371, 4074 अंक: 1634, 8208, 9474घात = अंकों की गिनती!
153 Armstrong संख्या है, क्योंकि उसके अंकों के घन जुड़कर 153 बनते हैं।
Perfect संख्या: 2828 के उचित भाजक 1, 2, 4, 7, 14 जुड़कर 28 बनते हैं; 12 के भाजक जुड़कर 16 बनते हैं।Perfect संख्या: 281+2+4+7+14= 2828 के भाजक (28 को छोड़कर)12 → 1+2+3+4+6 = 16 ≠ 12 (perfect नहीं)बहुत कम हैं!6, 28, 496, 8128
28 perfect है: उसके उचित भाजक जुड़कर ठीक 28 बनते हैं।
हम i × i ≤ n पर क्यों रुकते हैं (n = 36)36 के भाजकों की जोड़ियाँ 6 × 6 के बाद उल्टी होकर दोहराती हैं, इसलिए √n तक जाँचना काफ़ी है।हम i × i ≤ n पर क्यों रुकते हैं (n = 36)i36 / i136218312496694123182361√36 = 6 — दर्पण रेखाये वही जोड़ियाँ हैं, बस उल्टीसिर्फ़ 6 तक जाँचिए√n तक कोई भाजक नहीं,तो उसके बाद भी नहीं।0 और 1 अभाज्य नहीं
36 के भाजकों की जोड़ियाँ 6 × 6 के बाद उल्टी हो जाती हैं, इसलिए prime जाँच √n पर रुक सकती है।

शुरू करने से पहले एक झलक:

संख्यानियमउदाहरण
Palindromeअपनी उलटी संख्या के बराबर121, 1331
Armstrongअंकों की (अंकों की गिनती वाली) घात का योग = संख्या153, 9474
Perfectउचित भाजकों का योग = संख्या6, 28, 496
Prime (अभाज्य)ठीक दो भाजक, 1 और स्वयं2, 13, 97
Strongअंकों के factorial का योग = संख्या145
Neonवर्ग के अंकों का योग = संख्या9 (81 → 8 + 1)
Automorphicवर्ग उसी संख्या पर ख़त्म होता है25, 76
Harshad (Niven)अपने अंकों के योग से विभाज्य18, 156
Spyअंकों का योग = अंकों का गुणनफल22, 1124

Pattern programs (41–50)

Pattern programs सिर्फ़ loop का अभ्यास हैं। इन्हें रटने की कोशिश मत कीजिए। एक छोटा grid बनाइए, पंक्तियों को i और स्तंभों को j नाम दीजिए, और लिखिए कि हर पंक्ति में कितने अक्षर चाहिए — फिर code अपने-आप बन जाता है।

समकोण त्रिभुज: पंक्ति i में i तारे4 पंक्तियों का grid, जहाँ पंक्ति i में j = 1 से i तक तारे हैं।समकोण त्रिभुज: पंक्ति i में i तारेj=1j=2j=3j=4i = 1*i = 2**i = 3***i = 4****Pattern की विधि1. बाहरी loop = पंक्तियाँ (i)2. भीतरी loop = स्तंभ (j)3. तय करें: पंक्ति i में कितने j?यहाँ: j चलता है 1 → i
Pattern की विधि: पंक्तियों के लिए बाहरी loop, स्तंभों के लिए भीतरी loop, और एक नियम कि पंक्ति i में कितने स्तंभ हों।

Array programs (51–60)

सभी array programs एक ही input ढाँचा लेते हैं: पहले तत्वों की गिनती, फिर अगली पंक्ति में space देकर सारे तत्व। ध्यान दीजिए कि index 0 से शुरू होता है, पर किसी इंसान को स्थिति बताते समय हम 1 जोड़ देते हैं।

Class और object programs (61–67)

अब तक सब कुछ main के अंदर था। असली programs data को उस code के साथ रखते हैं जो उस data पर काम करता है — इसी गठरी को class कहते हैं। ये रहे ज़रूरी शब्द, हर एक नीचे के किसी program से जुड़ा:

शब्दएक पंक्ति में अर्थProgram देखिए
Classएक नक़्शा जो बताता है कि उसके objects क्या जानते और क्या करते हैं।61 — Student
Objectclass से new द्वारा बनी असली चीज़।61 — s1
Data member (field)class के अंदर का variable; हर object को उसकी अपनी copy मिलती है।61 — roll, name
Member methodclass के अंदर का function जो object के data पर काम करता है।61 — display()
Constructorclass के नाम वाला विशेष method; new से object बनते समय एक बार चलता है।62 — Rectangle(l, b)
Dot operatorकिसी एक ख़ास object के member तक पहुँचता है।s1.marks, r1.area()
privateData member को class के बाहर के code से छिपाता है।63 — balance
static memberपूरी class की एक साझा copy, हर object की अलग नहीं।64 — count
this"मौजूदा object"; एक ही नाम वाले field और parameter को अलग करता है।63, 64, 66
Class के हिस्सेStudent class में data members, constructor और member method अलग-अलग रंग से चिह्नित हैं।Class के हिस्सेclass Student {int roll;String name;Student(int r, String n) {roll = r; name = n;}void display() {System.out.println(name);}}data membersobject क्या जानता हैconstructornew के समय एक बार चलता हैmember methodobject क्या कर सकता है
वे तीन हिस्से जो आप लगभग हर class में लिखेंगे: data members, constructor और member methods।

OOP का सबसे काम का चित्र: class एक नक़्शा है, और हर new उससे एक अलग object बनाता है। दो विद्यार्थी, दो objects, अंकों के दो अलग सेट।

Class = नक़्शा, object = असली चीज़Student class से new द्वारा दो objects s1 (Aman) और s2 (Priya) बने हैं, हर एक के अपने data members हैं।Class = नक़्शा, object = असली चीज़class Studentdata membersint roll;String name;int marks;member methodsvoid display()String result()new Student()new Student()s1(object)roll = 101name = "Aman"marks = 78s2(object)roll = 102name = "Priya"marks = 91s1.display() सिर्फ़ s1 का data लेता हैएक class, कई objects — हर object के पास data members की अपनी copy होती है।
एक Student class, दो objects। s1.display() Aman का data छापता है; s2.display() Priya का।

और वह ग़लती जो लगभग हर नए सीखने वाले को उलझाती है: एक object variable को दूसरे में assign करने से copy नहीं बनती। सिर्फ़ पता copy होता है। Program 67 यह साबित करता है।

Reference है, copy नहीं: b = aVariables a और b एक ही Box object की ओर इशारा करते हैं, जबकि c new से बने दूसरे object की ओर।Reference है, copy नहीं: b = aStack (variables)Heap (objects)abcBox object #1value = 99Box object #2value = 5a और b एक ही object पर!b.value = 99 से a.value भी बदलता है। दूसरा object सिर्फ़ new से बनता है।
b = a से एक ही object की ओर दो तीर बनते हैं। असली दूसरा object सिर्फ़ एक और new से मिलता है।

ग़लतियाँ जो मुझे सबसे ज़्यादा दिखती हैं

  • Loop के बाद मूल संख्या इस्तेमाल करना। Reverse जैसे loops n को 0 कर देते हैं। Loop से पहले एक copy (t = n) बचा लीजिए।
  • अनजाने में पूर्णांक भाग। Java में 7 / 2 का उत्तर 3 है। 3.5 चाहिए तो 7 / 2.0 या (double) cast लगाइए।
  • max को 0 से शुरू करना। ऋणात्मक संख्याओं वाले array में उत्तर ग़लत आएगा। a[0] से शुरू कीजिए।
  • 1 को अभाज्य कहना। अभाज्य संख्या के ठीक दो भाजक होते हैं; 1 का सिर्फ़ एक।
  • बाहरी loop के अंदर flag या योग को फिर से शुरू करना भूल जाना (programs 34 और 41–50 में यही चुभता है)।
  • Objects का array बनाना पर objects नहीं। new Book[3] से तीन ख़ाली खाने मिलते हैं; हर खाने को अब भी new Book() चाहिए।
  • यह सोचना कि b = a object की copy बनाता है। यह सिर्फ़ reference copy करता है — program 67 देखिए।
  • Public class का नाम file से अलग रखना। Online compiler में इसे Main ही रखिए।

10 दिन की अभ्यास योजना

दिनProgramsध्यान किस पर
11–10Scanner, data types, पूर्णांक बनाम दशमलव भाग
211–20शर्तों का क्रम, && और ||
321–28हर loop की शुरुआत, अंत और बदलाव
429–34% 10 और / 10 की तरकीब
535–40Loops और शर्तों को जोड़ना
641–45पंक्ति और स्तंभ की सोच
746–50Spaces और दो भीतरी loops
851–60Index और एक ही चक्कर वाले algorithms
961–64Class, object, constructor, private, static
1065–67Objects का array और references; फिर कोई भी पाँच programs बिना देखे दोबारा

सारांश

  • हर program Scanner से input लेता है और कंपाइलर खोलें ↓ से अपने ही नीचे चलाया जा सकता है।
  • ज़्यादातर संख्या-programs दो पंक्तियों पर टिके हैं: n % 10 और n / 10।
  • Pattern मतलब पंक्तियाँ (i) और स्तंभ (j); तय कीजिए कि हर पंक्ति में कितने स्तंभ हों।
  • Class, data members और member methods को एक साथ बाँधती है; new से बना हर object अपना data अलग रखता है।
  • पहले ख़ुद लिखिए, फिर मिलाइए। दस मिनट की मेहनत दस copy किए programs से ज़्यादा क़ीमती है।

आगे, स्कूल की practical परीक्षा के लिए Java practical file programs आज़माइए, या Java interview questions से ख़ुद को परखिए।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

इन Java programs को मुफ़्त में online कैसे चलाएँ?
किसी भी program के नीचे कंपाइलर खोलें बटन दबाइए। उसके नीचे मुफ़्त OneCompiler Java editor खुल जाता है जिसमें code पहले से भरा होता है। नमूना input को STDIN box में चिपकाइए और Run दबाइए। कुछ भी install नहीं करना पड़ता।
हर program में class का नाम Main क्यों है?
Online compiler code को Main.java नाम से save करते हैं, और Java में public class का नाम उसकी file के नाम जैसा होना ज़रूरी है। अपने computer पर आप कोई भी नाम रख सकते हैं, बस file का नाम वही होना चाहिए।
Online compiler में Java program को input कैसे दें?
Run दबाने से पहले हर value STDIN (input) box में लिखिए या चिपकाइए, हर पंक्ति में एक या space देकर। Scanner उन्हें क्रम से पढ़ता है, ठीक वैसे जैसे आपने keyboard से टाइप किया हो।
Java में Armstrong संख्या क्या है?
ऐसी संख्या जो अपने अंकों के योग के बराबर हो, जहाँ हर अंक पर अंकों की गिनती जितनी घात लगे। 153 = 1³ + 5³ + 3³ और 9474 = 9⁴ + 4⁴ + 7⁴ + 4⁴। Program पहले अंक गिनता है, इसलिए हर लंबाई की संख्या पर चलता है।
Perfect संख्या क्या होती है?
ऐसी संख्या जो अपने उचित भाजकों, यानी ख़ुद को छोड़कर सभी भाजकों, के योग के बराबर हो। 6 = 1 + 2 + 3 और 28 = 1 + 2 + 4 + 7 + 14। ऐसी संख्याएँ बहुत कम हैं: पहली चार 6, 28, 496 और 8128 हैं।
Prime संख्या वाला program वर्गमूल पर क्यों रुकता है?
भाजक जोड़ियों में आते हैं, और वर्गमूल के बाद वही जोड़ियाँ उल्टे क्रम में दोहराती हैं। अगर n के वर्गमूल तक कोई भाजक न मिले, तो उसके बाद भी नहीं मिलेगा, इसलिए i × i ≤ n तक जाँचना काफ़ी और बहुत तेज़ है।
Class और object में क्या अंतर है?
Class एक नक़्शा है जो data members और member methods बताता है। Object उस नक़्शे से new द्वारा बनी असली चीज़ है। एक Student class से कई student objects बन सकते हैं, और हर एक अपना roll number और अंक अलग रखता है।
Data members और member methods क्या होते हैं?
Data members class के अंदर declare किए गए variables हैं, जैसे roll और name; हर object को उनकी अपनी copy मिलती है। Member methods class के अंदर के functions हैं, जैसे display(), जो उसी object के data पर काम करते हैं जिसने उन्हें बुलाया।
इन programs का अभ्यास किस क्रम में करें?
भाग-दर-भाग चलिए: गणना, if-else, loops, संख्या programs, patterns, arrays और आख़िर में classes और objects। इस page की 10 दिन की योजना सभी 67 programs को रोज़ के हिस्सों में बाँटती है, और आख़िरी दिन बिना देखे programs दोबारा लिखने के लिए है।
← Back to Java Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicPractical File Programs (Compiler के साथ) आपकी प्रगति: 26 / 61 (43%) · Lesson 27 / 61 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें