java - Beginner: Do while loop issue -


ello, got minor issue haven't got clue on what's going wrong... snippet of code:

do{       string third = joptionpane.showinputdialog(null, "please enter year ["+day+"/"+month+"/yy?]");       year = integer.parseint (third);       validchoice = validyear(year);    }while(!validchoice);  do{       string gous = joptionpane.showinputdialog(null, "do want switch format us? [y/n]");       gous = gous.touppercase();       char conversion = gous.charat(0);       validchoice = validoption(conversion);         switch(conversion){           case 'y':                if(year < 10)                {                   date.append(month).append("/").append(day).append("/" + "200").append(year);                }else{                   date.append(month).append("/").append(day).append("/" + "20").append(year);               }               joptionpane.showmessagedialog(null, date);               break;            case 'n':                if(year < 10)                {                   date.append(day).append("/").append(month).append("/" + "200").append(year);                }else{                   date.append(day).append("/").append(month).append("/" + "20").append(year);               }               joptionpane.showmessagedialog(null, date);               break;            default:               joptionpane.showmessagedialog(null, "invalid answer! use y/n", "error", joptionpane.error_message);        }}while(!validchoice);  //// methods:  public static boolean validyear (int year){     boolean isvalid = true;      if(year < 1 || year > 99)      {       isvalid = false;      }      return isvalid; }  public static boolean validoption (char conversion){     boolean isvalid = true;      if(conversion != 'y' || conversion != 'n')      {       isvalid = false;      }      return isvalid; } 

the first part, regards year, , it's associated method, loops fine if input wrong.

the second part, 'gous', method's remotely same thing, checking char if it's y/n - works fine regards check , all, after hitting ok correct display of date, starts gous loop again, , answers start concatenate previous display, , on. want app end after displaying date.

any pointing out flaw appreciated.

it seems problem because of case of input character, checking lower-case in validoption , checking upper-case in main method. believe input upper case, , validoption returns false.

change validoption to:

public static boolean validoption (char conversion) {     return conversion == 'y' || conversion == 'n'; } 

or use java.lang.character tolower or toupper methods.


Comments

Popular posts from this blog

curl - PHP fsockopen help required -

HTTP/1.0 407 Proxy Authentication Required PHP -

java - More than one row with the given identifier was found: 1, for class: com.model.Diagnosis -