我的問題是我試圖使一個消息聲明爲一個字符串顯示取決於它是否爲真或假。該字符串不返回正確的值是:snakeYearMsg爲什麼我的字符串不能激活?
我一直在試圖使這個字符串返回所需的值整天無濟於事。最後,我通過列出SNAKE_YEAR的所有可能的可用性,嘗試了一種暴力方法。
該程序讓用戶輸入數據,然後根據輸入計算它們的「Essscore」。我的問題是,最後一次向用戶輸出的數據始終顯示用戶出生在「蛇年」(一年中的蛇,在中國的生肖),即使他們不是。
這個程序對,我已經忘記了,它越來越periously接近到期日的任務,所以任何幫助將不勝感激
的代碼是在這裏:
/*Program designed by Some guy
*for KXT101 Assignment Number One*/
import java.util.Scanner;
public class AssigOne113
{
public static void main (String[] args)
{
final int CURRENT_YEAR = 2013;
final int CALENDER_ROTATION = 12;
final int SNAKE_YEAR = CURRENT_YEAR | 2001 | 1989 | 1977 | 1965 | 1953 | 1941 | 1929 | 1917 | 1905 | 1893 | 1881 | 1869 |
1857 | 1845 | 1833 | 1821 | 1809 | 1797 | 1785 | 1773 | 1761 | 1749 | 1737 | 1725 | 1713 | 1701 |
1689 | 1677 | 1665 | 1653 | 1641 | 1629 | 1617 | 1605 | 1593 | 1581 | 1569 | 1557 | 1545 | 1533 |
1521 | 1509 | 1497 | 1485 | 1473 | 1461 | 1449 | 1437 | 1425 | 1413 | 1401 | 1389 | 1377 | 1365 |
1353 | 1341 | 1329 | 1317 | 1305 | 1293 | 1281 | 1269 | 1257 | 1245 | 1233 | 1221 | 1209 | 1197 |
1185 | 1173 | 1161 | 1149 | 1137 | 1125 | 1113 | 1101 | 1089 | 1077 | 1065 | 1053 | 1041 | 1029 |
1017 | 1005 | 993 | 981 | 969 | 957 | 945 | 933 | 921 | 909 | 897 | 885 | 873 | 861 |
849 | 837 | 825 | 813 | 801 | 789 | 777 | 765 | 753 | 741 | 729 | 717 | 705 | 693 |
681 | 669 | 657 | 645 | 633 | 621 | 609 | 597 | 585 | 573 | 561 | 549 | 537 | 525 |
513 | 501 | 489 | 477 | 465 | 453 | 441 | 429 | 417 | 405 | 393 | 381 | 369 | 357 |
345 | 333 | 321 | 309 | 297 | 285 | 273 | 261 | 249 | 237 | 225 | 213 | 201 | 189 |
177 | 165 | 153 | 141 | 129 | 117 | 105 | 93 | 81 | 69 | 57 | 45 | 33 | 21 |
9;
final int SUMMER_MONTH_JAN = 1;
final int SUMMER_MONTH_FEB = 2;
final int SUMMER_MONTH_DEC = 12;
final int AUTUMN_MONTH_MAR = 3;
final int AUTUMN_MONTH_APR = 4;
final int AUTUMN_MONTH_MAY = 5;
final int WINTER_MONTH_JUN = 6;
final int WINTER_MONTH_JUL = 7;
final int WINTER_MONTH_AUG = 8;
final int SPRING_MONTH_SEP = 9;
final int SPRING_MONTH_OCT = 10;
final int SPRING_MONTH_NOV = 11;
final int SIXTH_DAY = 06;
final int SEVENTH_DAY = 07;
final int JANUARY = 1;
final int FEBUARY = 2;
final int MARCH = 3;
final int APRIL = 4;
final int MAY = 5;
final int JUNE = 6;
final int JULY = 7;
final int AUGUST = 8;
final int SEPTEMBER = 9;
final int OCTOBER = 10;
final int NOVEMBER = 11;
final int DECEMBER = 12;
final int CALENDER_MAX = 12;
Scanner sc;
String essscorecalculate;
String essscorerepeat;
String userName;
int birthYear;
String junk;
int yob;
int day;
int month = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
int essscore = 0;
String summer = "Summer";
String autumn = "Autumn";
String winter = "Winter";
String spring = "Spring";
String seasonBorn = "any season";
String monthBorn = "any month";
String snakeYearMsg = "the year";
boolean snakeYearBool;
boolean haveS;
double birthDay;
char initial;
//program begins
System.out.println(" ");
System.out.println("<------------------------------------------->");
System.out.println("Sammy Snakes Sixth/Seventh Spring Of Success");
System.out.println("<------------------------------------------->");
System.out.println(" ");
System.out.println("<------------------------------------------->");
System.out.println(" I can calculate an Ess-Score for you ");
System.out.println(" Would you like to calculate an Ess-Score? ");
System.out.println("<------------------------------------------->");
sc = new Scanner(System.in);
essscorecalculate = sc.nextLine();
{
/*essscore.Reset;*/
{
}
}
System.out.println("<------------------------------------------->");
System.out.println(" To begin, what is your name? ");
System.out.println("<------------------------------------------->");
userName = sc.nextLine();
initial =(userName.charAt(0));
{
if (initial == 'S')
essscore =+ 4;
if (initial == 's')
essscore =+ 4;
}
System.out.println("<----------------------------------------------------------------->");
System.out.println(" What year were you born? (Please enter in following format XXXX) ");
System.out.println("<----------------------------------------------------------------->");
birthYear = sc.nextInt();
junk = sc.nextLine();
{
{
if (birthYear == SNAKE_YEAR)
snakeYearBool = true;
/* essscore =+ 16; */
else if (birthYear != SNAKE_YEAR)
snakeYearBool = false;
}
{
if (snakeYearBool = false)
snakeYearMsg = "A non Snake year";
if (snakeYearBool = true)
snakeYearMsg = "Snake year";
if (birthYear != SNAKE_YEAR)
essscore ++;
}
}
System.out.println("<--------------------------------------------------------------------->");
System.out.println("Please enter your birthday (please enter in the following format DD.MM)");
System.out.println("<--------------------------------------------------------------------->");
birthDay = sc.nextDouble();
junk = sc.nextLine();
{
{
day = (int)birthDay;
if (day == SIXTH_DAY)
essscore =+ 8;
if (day == SEVENTH_DAY)
essscore =+ 8;
}
{
month = ((int)Math.round(100*birthDay))%100;
/*System.out.print(month);*/
}
{
if (month == 1)
monthBorn = "January";
if (month == 2)
monthBorn = "Febuary";
if (month == 3)
monthBorn = "March";
if (month == 4)
monthBorn = "April";
if (month == 5)
monthBorn = "May";
if (month == 6)
monthBorn = "June";
if (month == 7)
monthBorn = "July";
if (month == 8)
monthBorn = "August";
if (month == 9)
monthBorn = "September";
if (month == 10)
monthBorn = "October";
if (month == 11)
monthBorn = "November";
if (month == 12)
monthBorn = "December";
}
{
if (month == SPRING_MONTH_SEP)
essscore =+2;
if (month == SPRING_MONTH_OCT)
essscore =+2;
if (month == SPRING_MONTH_NOV)
essscore =+2;
{
if (month == SPRING_MONTH_SEP)
seasonBorn = "Spring";
else if (month == SPRING_MONTH_OCT)
seasonBorn = "Spring";
else if (month == SPRING_MONTH_NOV)
seasonBorn = "Spring";
else if (month ==AUTUMN_MONTH_MAR)
seasonBorn = "Autumn";
else if (month ==AUTUMN_MONTH_APR)
seasonBorn = "Autumn";
else if (month ==AUTUMN_MONTH_MAY)
seasonBorn = "Autumn";
else if (month == WINTER_MONTH_JUN)
seasonBorn = "Winter";
else if (month == WINTER_MONTH_JUL)
seasonBorn = "Winter";
else if (month == WINTER_MONTH_AUG)
seasonBorn = "Winter";
else if (month == SUMMER_MONTH_JAN)
seasonBorn = "Summer";
else if (month == SUMMER_MONTH_FEB)
seasonBorn = "Summer";
else if (month == SUMMER_MONTH_DEC)
seasonBorn = "Summer";
}
}
}
System.out.println("<------------------------------------------------>");
System.out.println(""+userName+" was born in "+seasonBorn+" on "+monthBorn+" "+day+" in "+snakeYearMsg+" "+birthYear+" ");
System.out.println(""+essscore+"");
System.out.println("<------------------------------------------------>");
System.out.println("<------------------------------------------------>");
System.out.println(" Would you like to calculate another Ess-Score? ");
System.out.println("<------------------------------------------------>");
essscorerepeat = sc.next();
}
}
查看'|'運算符。 A * bitwise或*在這裏沒有用處 - 特別是因爲* none *的用法看起來是相互排斥的位域。 (請參閱'ArrayList。包含「,但更好的是,使用確定性公式,如果可以應用 - 即年數*總是*爲12的週期?如果不是,幾個例外可以單獨處理嗎?) – user2246674
可能重複[字符串比較在Java中,再次](http://stackoverflow.com/questions/8702986/string-comparison-in-java-again)哦CRAP!糟糕的近距離投票 - 這與字符串比較無關!我的歉意 –
對不起剛剛解決了我自己的問題,我錯過了一些額外的「=」符號「snakeYearBool」 – Steahan