Java 如果方法内部的运算符不';t返回正确的值 公共类EX02{ 今日公众假期; 公共静态字符串结果; /** *不变的。 *每三天喂一次虫子。 */ 公共静态最终int蠕虫喂食日=3; /** *不变的。 *每5天,在沙滩上沐浴一次。 */ 公共静态最终int_日=5; /** *不变的。 *需要说明的总天数。 */ 公共静态最终整数天=30; /** *程序的入口点。 *@param args来自命令行的参数。 */ 公共静态void main(字符串[]args){ getInstructionForCurrentDay(当前日期); //在此处的循环中调用并打印getInstructionForCurrentDay 对于(currentDay=1;currentDay
问题是“getInstructionForCurrentDay(int currentDay)”在Main方法中不返回所需的值。我做错了什么?你的Java 如果方法内部的运算符不';t返回正确的值 公共类EX02{ 今日公众假期; 公共静态字符串结果; /** *不变的。 *每三天喂一次虫子。 */ 公共静态最终int蠕虫喂食日=3; /** *不变的。 *每5天,在沙滩上沐浴一次。 */ 公共静态最终int_日=5; /** *不变的。 *需要说明的总天数。 */ 公共静态最终整数天=30; /** *程序的入口点。 *@param args来自命令行的参数。 */ 公共静态void main(字符串[]args){ getInstructionForCurrentDay(当前日期); //在此处的循环中调用并打印getInstructionForCurrentDay 对于(currentDay=1;currentDay,java,Java,问题是“getInstructionForCurrentDay(int currentDay)”在Main方法中不返回所需的值。我做错了什么?你的 public class EX02 { public static int currentDay; public static String result; /** * Constant. * Every 3 days, feed worms. */ public static final int WORM_FEEDING_DAY = 3;
public class EX02 {
public static int currentDay;
public static String result;
/**
* Constant.
* Every 3 days, feed worms.
*/
public static final int WORM_FEEDING_DAY = 3;
/**
* Constant.
* Every 5 days, bathe in sand.
*/
public static final int BATHING_DAY = 5;
/**
* Constant.
* Total number of days for which instructions are needed.
*/
public static final int NUMBER_OF_DAYS = 30;
/**
* Entry point of the program.
* @param args Arguments from command line.
*/
public static void main(String[] args) {
getInstructionForCurrentDay(currentDay);
// call and print getInstructionForCurrentDay inside a loop here
for (currentDay = 1; currentDay < NUMBER_OF_DAYS +1; currentDay++) {
currentDay = 30 - (NUMBER_OF_DAYS - currentDay);
System.out.println("DAY " + currentDay + result);
}
System.out.println("Can't fly back in time");
}
/**
* Return instruction for given day.
* @param currentDay number of day to print instructions for.
*/
public static String getInstructionForCurrentDay(int currentDay) {
if (currentDay % 3 == 0){
result = ":feed worms";
}
else if (currentDay % 5 == 0){
result = ":time to bath";
}
else if (currentDay % 5 == 0 && currentDay % 3 ==0 ){
result = ":glide";
}
else if (currentDay % 3 !=0 || currentDay % 5 != 0) {
result = ":give fruit and water";
}
return result;
}
}
先有条件,否则永远达不到
除此之外,您还应该为currentDay(currentDay)分配getInstructionForCurrentDay的结果如果希望该方法的调用者使用某个变量,则应将code>指定给该变量,并且应在循环内调用getInstructionForCurrentDay(currentDay)
,因为currentDay
仅在循环内指定
if (currentDay % 5 == 0 && currentDay % 3 ==0 )
//在此处的循环中调用并打印getInstructionForCurrentDay
对于(currentDay=1;currentDay<天数+1;currentDay++){
currentDay=30-(天数-currentDay);
结果=获取当前日期的指令(当前日期);
系统输出打印项次(“日”+当前日+结果);
}
...
公共静态字符串getInstructionForCurrentDay(int currentDay){
如果(当前日期%5==0&¤tDay%3==0){
结果=“滑动”;
}
否则如果(当前日期%3==0){
结果=“:喂虫”;
}
否则如果(当前日期%5==0){
结果=“洗澡时间”;
}
否则{
结果=“:给水果和水”;
}
返回结果;
}
在实例化方法之前,您正在将currentDay
传递到方法中,因此您实际上是在将0
传递到方法中
因此,所有if语句条件都从未满足,因此result
也从未给定值,因此不会返回所需的值
相反,我相信你想这样做:
// call and print getInstructionForCurrentDay inside a loop here
for (currentDay = 1; currentDay < NUMBER_OF_DAYS +1; currentDay++) {
currentDay = 30 - (NUMBER_OF_DAYS - currentDay);
result = getInstructionForCurrentDay(currentDay);
System.out.println("DAY " + currentDay + result);
}
...
public static String getInstructionForCurrentDay(int currentDay) {
if (currentDay % 5 == 0 && currentDay % 3 ==0 ){
result = ":glide";
}
else if (currentDay % 3 == 0){
result = ":feed worms";
}
else if (currentDay % 5 == 0){
result = ":time to bath";
}
else {
result = ":give fruit and water";
}
return result;
}
for(currentDay=1;currentDay<天数+1;currentDay++)
{
getInstructionForCurrentDay(当前日期);
系统输出打印项次(“日”+当前日+结果);
currentDay=30-(天数-currentDay);
}
谢谢,我是这样解决的:
for (currentDay = 1; currentDay < NUMBER_OF_DAYS +1; currentDay++)
{
getInstructionForCurrentDay(currentDay);
System.out.println("DAY " + currentDay + result);
currentDay = 30 - (NUMBER_OF_DAYS - currentDay);
}
公共类EX02{
/**
*恒定。每3天喂一次虫子。
*/
公共静态最终int蠕虫喂食日=3;
/**
*恒定。每5天,在沙滩上沐浴一次。
*/
公共静态最终int_日=5;
/**
*常量。需要说明的总天数。
*/
公共静态最终整数天=30;
/**
*程序的入口点。
*
*@param args
*来自命令行的参数。
*/
公共静态void main(字符串[]args){
//在此处的循环中调用并打印getInstructionForCurrentDay
if(天数<1){
System.out.println(“不能飞回时间”);
系统出口(0);
}
对于(int currentDay=1;currentDayString str=getInstructionForCurrentDay(currentDay);
什么是result
?它没有在代码示例中声明…@fge:它是-代码格式不正确:(currentDay
只包含一个零值,而不是一无所有。是的,很抱歉,忽略了整数不能为null并默认为0的事实。
public class EX02 {
/**
* Constant. Every 3 days, feed worms.
*/
public static final int WORM_FEEDING_DAY = 3;
/**
* Constant. Every 5 days, bathe in sand.
*/
public static final int BATHING_DAY = 5;
/**
* Constant. Total number of days for which instructions are needed.
*/
public static final int NUMBER_OF_DAYS = 30;
/**
* Entry point of the program.
*
* @param args
* Arguments from command line.
*/
public static void main(String[] args) {
// call and print getInstructionForCurrentDay inside a loop here
if (NUMBER_OF_DAYS < 1) {
System.out.println("Can't fly back in time");
System.exit(0);
}
for (int currentDay = 1; currentDay <= NUMBER_OF_DAYS; currentDay++) {
System.out.println("Day " + currentDay + ": "
+ getInstructionForCurrentDay(currentDay));
}
}
/**
* Return instruction for given day.
*
* @param currentDay
* number of day to print instructions for.
*/
public static String getInstructionForCurrentDay(int currentDay) {
String result = "";
if (currentDay % WORM_FEEDING_DAY == 0 && currentDay % BATHING_DAY == 0)
result = "glide in wind";
else if (currentDay % WORM_FEEDING_DAY == 0)
result = "feed worms";
else if (currentDay % BATHING_DAY == 0)
result = "bathe in sand";
else
return "give fruit and water";
return result;
}