I am having trouble trying to create a method that allows the user to set a specific region. What am I doing wrong?
https://www.codecademy.com/courses/learn-java/projects/java-language-families
import java.util.ArrayList;
class Language {
protected String name;
protected int numSpeakers;
protected String regionSpoken;
protected String wordOrder;
Language(String languageName, int languageNumSpeakers, String languageRegionSpoken, String languageWordOrder){
this.name = languageName;
this.numSpeakers = languageNumSpeakers;
this.regionSpoken = languageRegionSpoken;
this.wordOrder = languageWordOrder;
}
public void getInfo(){
System.out.println(this.name+" is spoken by “+this.numSpeakers+” people mainly in “+this.regionSpoken+”.");
System.out.println(“The language follows the word order: “+this.wordOrder+”.”);
}
public static void info (String region){
switch (region) {
case “0”:
for (Language someLanguage : languages){
someLanguage.getInfo();
}
break;
case “1”:
for (Language someLanguage : languages){
if (this.regionSpoken = “Central America”){
someLanguage.getInfo();
}
}
break;
case “2”:
for (Language someLanguage : languages){
if (this.regionSpoken = “Asia”){
someLanguage.getInfo();
}
}
break;
default:
System.out.println(“Not valid input”);
}
}
public static void main(String args){
Language greek = new Language(“Greek”, 14000000, “Greece, and Cyprus”, “subject-verb-object”);
Language tzotzil = new Mayan(“Tzotzil”, 404704);
Language mandarinChinese = new SinoTibetan(“Mandarin Chinese”, 1000);
Language burmese = new SinoTibetan(“Burmese”, 2000);
ArrayList languages = new ArrayList();
languages.add(greek);
languages.add(tzotzil);
languages.add(mandarinChinese);
languages.add(burmese);
System.out.println(“Which languages would you like info on?”);
System.out.println(“0: All”);
System.out.println(“1: Central American”);
System.out.println(“2: Asian”);
info (args[0]);
}
}
What about the output/end result isn’t desirable? Also, can you please format your code according to this guide?
import java.util.ArrayList;
class Language {
protected String name;
protected int numSpeakers;
protected String regionSpoken;
protected String wordOrder;
Language(String languageName, int languageNumSpeakers, String languageRegionSpoken, String languageWordOrder){
this.name = languageName;
this.numSpeakers = languageNumSpeakers;
this.regionSpoken = languageRegionSpoken;
this.wordOrder = languageWordOrder;
}
public void getInfo(){
System.out.println(this.name+" is spoken by "+this.numSpeakers+" people mainly in "+this.regionSpoken+".");
System.out.println("The language follows the word order: "+this.wordOrder+".");
}
public static void info (String region){
switch (region) {
case "0":
for (Language someLanguage : languages){
someLanguage.getInfo();
}
break;
case "1":
for (Language someLanguage : languages){
if (this.regionSpoken = "Central America"){
someLanguage.getInfo();
}
}
break;
case "2":
for (Language someLanguage : languages){
if (this.regionSpoken = "Asia"){
someLanguage.getInfo();
}
}
break;
default:
System.out.println("Not valid input");
}
}
public static void main(String[] args){
Language greek = new Language("Greek", 14000000, "Greece, and Cyprus", "subject-verb-object");
Language tzotzil = new Mayan("Tzotzil", 404704);
Language mandarinChinese = new SinoTibetan("Mandarin Chinese", 1000);
Language burmese = new SinoTibetan("Burmese", 2000);
ArrayList<Language> languages = new ArrayList<Language>();
languages.add(greek);
languages.add(tzotzil);
languages.add(mandarinChinese);
languages.add(burmese);
System.out.println("Which languages would you like info on?");
System.out.println("0: All");
System.out.println("1: Central American");
System.out.println("2: Asian");
info (args[0]);
}
}
The only example I’ve seen so far with user interface is a “Hello Laura” example in some earlier lesson. I changed = to ==, but this is clearly not the problem, or the only one.
System.out.println("Which languages would you like info on?");
System.out.println("0: All");
System.out.println("1: Central American");
System.out.println("2: Asian");
All this is not printed, args[0] is not called for, what prints is case “0” again and again.
Can you show me where you declare the languages
variable?