BDL427 BDL427 - 9 months ago 29
Java Question

Illegal Start of Expression public int getInput

Sorry for the newbie question but, I can't figure this out. At the start of this code I'm getting an Illegal Start of Expression error and I can't figure out why. Any help is appreciated.

public int getInput(int length){
System.out.println("Enter an index of your choice:");
Scanner input = new Scanner(System.in);
choice = input.nextInt();
if(choice > length){
System.out.println("The number is out of the array bound");
}
return choice;
}


Here is the whole code

import java.util.Random;
import java.util.Scanner;


public class shoutboxclasswithmethods {

//Tell the system about varibles and activate
int a = 0, i = 0, choice;


/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here

public int getInput(int length){
System.out.println("Enter an index of your choice:");
Scanner input = new Scanner(System.in);
choice = input.nextInt();


if(choice > length){
System.out.println("The number is out of the array bound");
}
return choice;
}

/*
* display all the array content
* @returns a string as per user slected index
*/
public String ShoutOutCannedMessage() {
//declare and intialize the array with ten messages
String[] cannedMessage = {"Hello", "this", "is","a test","for","my",
"homework","Hello World","I love Java","Welcome","Thank you"};
//get the lenght of the array
i = cannedMessage.length;
//display using the loop limiting the loop to only the number of array index+1
for (; a < i; a++) {
System.out.println("Index " + a + " : " +cannedMessage[a]);
}
//get the user input of an index using the getInput() predefined user method
int y = getInput(i);
//select and assign the message at the index to a string variable
String selectedMessage = cannedMessage[y];
//return the string varibale object
return selectedMessage;
}
/* generate a random number within a limit
* returns a string from five string arrays choosen depending on the random number as an index
*/

public String ShoutOutRandomMessage(){
//declare and intialize the arrays
String [] subject={"You","She","It","They","We","He","Who","Which","Is","I"};
String [] verb={"read","breathe","run","draw","study","shake","eat","talk","write","show"};
String [] adjective={"funny", "prickly","hard","peaceful","confident","loud","qualified","wealthy","wrong","academic"};
String [] object={"Java","Jane","course","homework","paper","Fish","Key", "phone","prince","laptop"};
String [] adverb={"daily","equally","easily","beautifully","calmly","closely","thankfully","regularly","always","quickly"};

//generate a rando number with upper bound of 10
Random rand=new Random();
choice=rand.nextInt(10);
//select and assign the message content to a single string
String r= subject[choice] +" "+verb[choice]+" "+adjective[choice]+" "+object[choice]+" "+adverb[choice]+".";
//return the string
return r;

}

}

Answer Source

Looks like main() is not closed

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here

}

Once you are enclosed it, I am not seeing the Illegal Start of Expression error.

Here is the link that will give some tips to resolve this type of errors:

http://www.java67.com/2016/08/how-to-fix-illegal-start-of-expression-error-in-java.html