मैं जावा में एक नौसिखिया प्रोग्रामर हूं (या कम से कम एक होने की कोशिश कर रहा हूं) और मुझे अपने कोड के साथ कुछ समस्याएं आ रही हैं।

इसका एक गाना है जिसे 99 बियर की बोतलें कहा जाता है जहां यह 99 से 0 तक जाती है और फिर रुक जाती है। कोड :

public class 99bottles {

public static void main (String[] args) {

    String word = "bottles";
    x bottle = 99;

    for (int i==0; i<99; i--) {
        if (i == 1) {
            word = "bottle";
        }

        System.out.println();
        System.out.println(i+ "Bottles of beer on the wall, " + i + " bottles of beer.");

        int y = i - 1 ;
        System.out.println("Take one down and pass it around, " + y + " bottles of beer on the wall.");



    }
}

}

हालांकि जैसे ही मैं इसे संकलित करने का प्रयास करता हूं, मुझे त्रुटियां मिलती हैं जो अतार्किक लगती हैं। यहां स्क्रीनशॉट

मदद के लिए यहां जाने का फैसला करने से पहले मैं अपना सिर दीवार से सटा रहा था।

0
user8799715 19 अक्टूबर 2017, 10:08

5 जवाब

आपके कोड में बहुत सी सिंटैक्स त्रुटियां हैं:

  • कक्षा का नाम किसी संख्या से शुरू नहीं हो सकता
  • x मान्य प्रकार नहीं लगता: x bottle = 99;
  • for लूप में गलत स्थिति: int i==0

और अर्थ संबंधी त्रुटियां भी:

  • for (int i==0; i<99; i--) - 0 से घटाना और 99 से कम होने पर जांच करना, यह एक अनंत लूप है
1
luke 19 अक्टूबर 2017, 13:26

दो परिवर्तन (आपके कोड के तर्क की जाँच नहीं की है):

1) x bottle = 99; से int bottle = 99;

2) for (int i==0; i<99; i--) से for (int i=0; i<99; i--)

== का अर्थ है तुलना और = का उपयोग मान निर्दिष्ट करने के लिए किया जाता है

x bottle = 99 एक वेरिएबल को परिभाषित करने के लिए जिसे आपको टाइप का उपयोग करने की आवश्यकता है।

संपादित करें:

कक्षा का नाम संख्या से शुरू नहीं हो सकता

0
Shubhendu Pramanik 19 अक्टूबर 2017, 10:20

आप जो करने की कोशिश कर रहे थे उसका एक साफ-सुथरा संस्करण यहां दिया गया है:

for (int i = 99; i > 0; i--) {
    String bottle = "bottle" + i > 1 ? "s" : "";
    System.out.println(i + bottle + " of beer on the wall, " + i + bottle + " of beer.");
    System.out.println("Take one down and pass it around, " + y + bottle + " of beer on the wall.");
}

आपका वर्तमान कोड समस्याओं से भरा हुआ है, जिनमें शामिल हैं:

  • कक्षा के नाम किसी संख्या से शुरू नहीं हो सकते हैं
  • i == 0 लूप काउंटर को कोई मान निर्दिष्ट नहीं करता है, यह इसकी तुलना करता है; इसके बजाय i = 0 का उपयोग करें
  • x bottle = 99; ऐसा लगता है कि यह केवल डेड डेंगलिंग कोड है, और आपका कोड अभी संकलित भी नहीं होना चाहिए
  • आपने bottle शब्द के किनारे के मामले को सही ढंग से उठाया है जब गिनती एक तक पहुंचने पर एकवचन होने की आवश्यकता होती है; लेकिन आपने इसे पूरी तरह से लागू नहीं किया, q.v. ऐसा करने के एक संभावित तरीके के लिए उपरोक्त कोड स्निपेट
0
Tim Biegeleisen 19 अक्टूबर 2017, 10:22

आपके उद्देश्य के लिए कार्य कोड यहां दिया गया है:(बस कॉपी करें और उपयोग करें!)

public static void main (String[] args) {

    String word = "bottles";
   // x bottle = 99;

    for (int i=0; i<=99; i++) {
        if (i == 1) {
            word = "bottle";
        }

        System.out.println();
        System.out.println((99-i)+ " Bottles of beer on the wall, " + (99-i) + " bottles of beer.");

        int y =99 - 1 ;
        System.out.println("Take one down and pass it around, " + y + " bottles of beer on the wall.");



    }
}
0
Satyanarayana.Ruppa 19 अक्टूबर 2017, 10:25

ल्यूक ने बहुत अच्छा उत्तर दिया है, कृपया लूप की स्थिति को ध्यान से देखें।

for (int i = 0 ; i < 99 ; i--) का अर्थ है कि आप एक पूर्णांक '0' से शुरू करते हैं, फिर आप 0 को 1 से घटाते रहते हैं जब तक कि i 99 से कम न हो। हालाँकि यदि आप 0 को कम करते रहते हैं, तो आपको हमेशा एक संख्या मिलेगी जो है 99 से कम है, इसलिए आपकी बंद करने की शर्त कभी भी पूरी नहीं होगी।

दो विकल्प जो आप कर सकते हैं:

for (int i = 0; i < 99 ; i++)

या

for (int i = 99; i > 0 ; i--)

जैसा कि ल्यूक ने कहा, यह ज्यादातर एक वाक्य रचना या अर्थ संबंधी त्रुटि है।

0
achAmháin 19 अक्टूबर 2017, 11:37