Why Does My Java Random Insult Generator Not Compile?

  • Context: Java 
  • Thread starter Thread starter GobiasMoleman
  • Start date Start date
  • Tags Tags
    Generator Random
Click For Summary
SUMMARY

The forum discussion centers around a Java program called "InsultGenerator" that fails to compile due to several coding errors. Key issues include the incorrect use of variable lengths before their definitions and a syntax error related to spacing in the declaration of the Random object. The suggested corrections involve properly defining the arrays for adjectives, verbs, and nouns before accessing their lengths, as well as ensuring correct syntax throughout the code. The conversation highlights the importance of understanding Java's syntax and the order of operations in programming.

PREREQUISITES
  • Basic understanding of Java programming syntax
  • Familiarity with Java's Random class and its methods
  • Knowledge of array initialization and access in Java
  • Understanding of variable scope and declaration order in Java
NEXT STEPS
  • Learn about Java array initialization and manipulation
  • Explore Java's Random class and its applications
  • Study common Java syntax errors and debugging techniques
  • Investigate best practices for structuring Java programs
USEFUL FOR

Beginner Java programmers, educators teaching programming concepts, and anyone interested in understanding common coding errors in Java.

GobiasMoleman
Messages
1
Reaction score
0
I need to make this Random Insult Generator work... I mistakenly thought it had compiled correctly, but I guess something went wrong. I would really appreciate some help with this as soon as possible. Thanks (I apologize for the sloppy code, I just saw Java code for the first time a few weeks ago, so this is pretty alien to me):

//InsultGenerator
//A program to generate insults.

import java.text.*;
import java.util.*;
import java.util.Random;

public class InsultGenerator
{//start
public static void main(String[] args)
{//start main
//variables
Random choice =new Random();
int a = choice.nextInt(adj.length);
int b = choice.nextInt(verb.length);
int c = choice.nextInt(noun.length);
//insult
{//start insult
String adj[] = { "poxmarked", "cantankerous", "bilestained", "scruffy looking"};
String verb[] = {"goatstealing"};
String noun[] = {"nerf herder", "blackguard"};
}//end insult
//Text
System.out.println("You "+adj[a]+", "+verb+" "+noun[n]+".");}
}//end main
 
Technology news on Phys.org
GobiasMoleman said:
I need to make this Random Insult Generator work... I mistakenly thought it had compiled correctly, but I guess something went wrong. I would really appreciate some help with this as soon as possible. Thanks (I apologize for the sloppy code, I just saw Java code for the first time a few weeks ago, so this is pretty alien to me):

It would help to know what your error was :\

I never used Java but if it's a syntax error you're getting:

Random choice =new Random();

Put a space between '=' and 'new'.
 
Side note: 'goatstealing' is an adjective, not a verb.
 
I wonder what this program can possibly be used for...
 
Defennder said:
I wonder what this program can possibly be used for...

You would wonder that, you poxmarked, goatstealing blackguard!
 
I am not terribly familiar with Java, but it looks like you are using the length of adj verb and noun before they are defined.

At the line
int a = choice.nextInt(adj.length);
the variable adj has not been defined so its length is also undefined (or at best 0)
 
DaleSpam said:
it looks like you are using the length of adj verb and noun before they are defined.

Yes, and the insult section doesn't need braces (though I don't think they hurt).
 
:smile: Those are some weak insults.
 
Is this an attempt at an artificial Rodney Dangerfield ? That's not AI ...hehe it lacks the I part ... j/k it's a good start at programming.
Half is learning the silly syntax, half is learning what the routine is doing.
I always found the first half harder.
 
  • #10
_Mayday_ said:
:smile: Those are some weak insults.
Yeah, but in our over-sensitive politically-correct world a really good one would probably get you expelled :frown:
 
  • #11
Damn right!
 
  • #12
Gokul43201 said:
Side note: 'goatstealing' is an adjective, not a verb.

It can be used for either, right? I was called a goatstealing fiend after I got caught goatstealing.
 
  • #13
Do testing :smile:
Some suggestions:

Code:
public static void main(String[] args)
{//start main
//variables
String adj[] = { "poxmarked", "cantankerous", "bilestained", "scruffy looking"};
String verb[] = {"goatstealing"};
String noun[] = {"nerf herder", "blackguard"};

Random choice =new Random();
int a = choice.nextInt(adj.length);
int b = choice.nextInt(verb.length);
int c = choice.nextInt(noun.length);
//Text
System.out.println("You "+adj[a]+", "+verb[b]+" "+noun[n]+".");
}

Code:
public static void main(String[] args)
{//start main
//variables
String adj[] = { "poxmarked", "cantankerous", "bilestained", "scruffy looking"};
String verb[] = {"goatstealing"};
String noun[] = {"nerf herder", "blackguard"};//Text
System.out.println("You "+adj[0]+", "+verb[0]+" "+noun[0]+".");
}

Code:
public static void main(String[] args)
{//start main
//variables
String adj[] = { "poxmarked", "cantankerous", "bilestained", "scruffy looking"};
String verb[] = {"goatstealing"};
String noun[] = {"nerf herder", "blackguard"};

Random choice =new Random();
int a = choice.nextInt(adj.length);
int b = choice.nextInt(verb.length);
int c = choice.nextInt(noun.length);
System.out.println(" a = "+a+" b = "+b+" c = "+c);
}

If you don't find any problem, try compiling again or use different computer .. or restart ;)
 
  • #14
your mother is so fat ...

filling this in could substitute for a test grade in linear algebra perhaps.
 
  • #15
I did this once back in VB6 but I loaded up all my "literary devices" into text files then randomized results from those. It helps give you an easy way of managing your words.

But yeah, it just looked like you tried using the objects before they were instantiated(created).
 

Similar threads

Replies
9
Views
2K
  • · Replies 2 ·
Replies
2
Views
7K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 9 ·
Replies
9
Views
9K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 3 ·
Replies
3
Views
5K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 37 ·
2
Replies
37
Views
5K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K