обновление переменной внутри цикла for

#java #for-loop

#java #for-цикл

Вопрос:

Моя цель программы состоит в том, чтобы подсчитать, сколько магазинов у меня будет через некоторое время. Я предоставил уравнение для программы, чтобы следовать ему. Стоимость каждого магазина составляет 30000 $. Я начал с 3 магазинов и их доход 10000 $ / магазин, поэтому общая сумма, которую я получу от своих магазинов, составляет 30000 $ / месяц. Теперь, как указано, через месяц я смогу открыть новый магазин, и мои магазины увеличатся до 4 и так далее. Через 7 месяцев моих магазинов будет 21, а общая сумма денег должна составлять 210000 $. Как бы вы изменили код, чтобы сделать это. Если вы хотите убедиться, что вы можете использовать paper для его вычисления. Проблема в моем коде заключается в том, что, как только общая сумма денег достигает 60000 и более, программа вычитает 30000 и увеличивает счетчик и магазин на 1, тогда как он должен увеличить счетчик один раз, а магазин дважды. Потому что 60000 $ — это стоимость создания 2 магазинов и так далее.

 public class investmentCalculation 
    /** the class describe the plan of investment. Each shop costs 30000  */
        {
         private int income ;
         private int shop ;
         private int firstMoney ;
         private int totalMoney1;
         private int totalMoney;
        //instructor  
        public investmentCalculation( )
        {
          income =10000;
           shop = 3;
            /** here is the cost of shop establishment */
           firstMoney = 30000; 
           totalMoney1 = 0;
        }
         // here the method to achieve the goal
        public int SetFor()
        { for(int i= 0; i < 7; i  )
        {   
         totalMoney1 = totalMoney1   totalMoney - firstMoney;
/**here is    0      =  0            60000      - 30000; 
   I got the total money from this equation
   totalMoney = shop * income;
              = 6    * 10000;


now the shop should be 8. However, after compiling the program the output is 7.


         shop  ;
         totalMoney = shop * income; /** once the TotalMoney = 30000(FirstMoney) should open new shop and so on. Once the iteration reach i=7 the TotalMoney must be 210000 */  

        shop  ;
         totalMoney = shop * income;

         }
             System.out.println("the total money is: " totalMoney);
             return shop;}


            }


            /** this class to test the investmentCalculation*/
            public class investmentCalculationTester 
           {

            public static void main(String [] args)
           {
            investmentCalculation TT = new investmentCalculation();
            int A =  TT.SetFor();
            System.out.println("the shops are:   " A);

            }}
  

Комментарии:

1. Ваше форматирование, безусловно , никак не может помочь.

2. @ChiefTwoPencils: Да, это самый быстрый способ разозлить других разработчиков. Особенно на SO.

3. Во-первых, у вас есть строка, которая, как представляется, вычисляет сумму чего-либо, но тогда вы никогда не используете сумму. Это выглядит как простая опечатка. Но если результат по-прежнему неверен, либо используйте отладчик, либо используйте System.out.println для печати значений некоторых ключевых переменных внутри цикла, чтобы вы могли видеть, где что-то идет не так. Я не могу сказать, что происходит не так, поскольку я понятия не имею, что вы пытаетесь вычислить.

4. Привет, пользователь3718703 — добро пожаловать в Stack overflow! Я заметил, что вы пытались отредактировать один из ответов, чтобы предоставить ответ на их помощь. Это не лучший способ ответить на их ответ. Вместо этого не стесняйтесь оставлять комментарий к ответу @pwmilmot. Таким образом, мы можем запомнить, что сказал pwilmot, а также услышать ваш ответ. Вы должны иметь возможность комментировать любые ответы на свой собственный вопрос.

5. эй, вы знаете, было бы весьма полезно, если бы вы отредактировали свой вопрос и добавили копию того, как на самом деле выглядит результат для вас прямо сейчас. например, «общая сумма составляет: … Общая сумма денег составляет … » и т. Д

Ответ №1:

Попробуйте это. Я думаю, вам следует пересчитать общую сумму денег. Поскольку количество магазинов равно 21, это правильно. Пожалуйста, пересчитайте общую сумму денег; она никогда не может быть 210000.

 public class investmentCalculation {
private int income;
private int shop;
private int firstMoney;
private int totalMoney1;
private int shopsAdded;

public investmentCalculation() {
    income = 10000;
    shop = 3;
    firstMoney = 30000;
    totalMoney1 = 0;
    shopsAdded = 0;
}

// here the method to achieve the goal
public int SetFor() {
    for (int i = 0; i < 7; i  ) {
        totalMoney1  = income * shop;
        shopsAdded = totalMoney1 / firstMoney;  //Calculate how many shops can be added with the money you have.
        shop  = shopsAdded;                     //Increment the shops by the newly added shops.
        totalMoney1 -= firstMoney * shopsAdded; //Decrement the cost required to form the new shops.
    }
    System.out.println("the total money is: "   totalMoney1);
    return shop;
}

/** this class to test the investmentCalculation */
public static void main(String[] args) {
    investmentCalculation TT = new investmentCalculation();
    int A = TT.SetFor();
    System.out.println("the shops are:   "   A);
}
  

}`