Java For循环,它在一周中的几天迭代一个月



正在为大学做一个项目,计算一个人一个月燃烧的卡路里量。首先想到的是,我需要一个for循环来遍历一周中的所有日子,接受用户输入并将其分配给适当的变量。循环没有按预期工作,我相信这是因为

对于(int i=0;i<7;i++(

但我不知道用什么来代替它。我最初的想法是另一个变量,但我不知道除了7之外该设置什么,这不会改变任何事情。代码屏幕截图

public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);

int monCalorie;
int tueCalorie;
int wedCalorie;
int thuCalorie;
int friCalorie;
int satCalorie;
int sunCalorie;
int weekCalorie;


System.out.println("Please enter the amount of calories you burned for the week starting on Monday");

for(int i = 0; i < 7; i++) {
monCalorie = scnr.nextInt();
System.out.println("Calories burnt on Monday: " + monCalorie);

tueCalorie = scnr.nextInt();
System.out.println("Calories burnt on Tuesday: " + tueCalorie);

wedCalorie = scnr.nextInt();
System.out.println("Calories burnt on Wednesday: " + wedCalorie);

thuCalorie = scnr.nextInt();
System.out.println("Calories burnt on Thursday: " + thuCalorie);

friCalorie = scnr.nextInt();
System.out.println("Calories burnt on Friday: " + friCalorie);

satCalorie = scnr.nextInt();
System.out.println("Calories burnt on Saturday: " + satCalorie);

sunCalorie = scnr.nextInt();
System.out.println("Calories burnt on Sunday: " + sunCalorie);

weekCalorie = monCalorie + tueCalorie + wedCalorie + thuCalorie + friCalorie + satCalorie + sunCalorie;
}

如果您实际上不需要周计数器来向用户显示它,那么这应该可以解决您的问题:

public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
int monthCalories = 0;

System.out.println("Please enter the amount of calories you burned for the week starting on Monday");
for (int i = 0; i <= 30; i++) {
int inputCalories = scnr.nextInt();
monthCalories += inputCalories;
System.out.print("Calories burnt on ");
switch (i%7) {
case 0:
System.out.println("Monday: " + inputCalories);
break;
case 1:
System.out.println("Tuesday: " + inputCalories);
break;
case 2:
System.out.println("Wednesday: " + inputCalories);
case 3:
System.out.println("Thursday: " + inputCalories);
break;
case 4:
System.out.println("Friday: " + inputCalories);
break;
case 5:
System.out.println("Saturday: " + inputCalories);
break;
case 6:
System.out.println("Sunday: " + inputCalories);
}
}
System.out.println("You burnt " + monthCalories + " this month, congrats !");
}

Modulo是一个非常方便的操作员,可以在环路中循环

public static void main(String[] args) 
{
Scanner scnr = new Scanner(System.in);
String[] weekDays= { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}; 
List<Integer> calorieOfWeeks = new ArrayList<Integer>(); // keeps weekly data of calories. it can be used for monthly data. if you don't need weekly data you can keep it as an integer.
int daysInMonth=30; // choose how many day a month includes
int dayIndex=2;     //choose starting day of month. 0=monday, 1=tuesday...
int weekCalorie=0;  // keeps calories of current week
System.out.println("Please enter the amount of calories you burned for the week starting on Monday");
for(int i=dayIndex; i<daysInMonth+dayIndex; i++)
{
System.out.print("Calories burnt on " +  weekDays[i%7] +  ": ");
weekCalorie+=scnr.nextInt();
if(i%7==6  || i==dayIndex+daysInMonth-1) // if it is sunday or month ended, it prints data of the week
{  
calorieOfWeeks.add(weekCalorie);
System.out.println( "Calories burnt on " + calorieOfWeeks.size() +  ".week : " + weekCalorie);
weekCalorie=0;
}
}  
}

最新更新