微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在java上减少一定数量

如何解决在java上减少一定数量

我正在尝试创建一个程序,其中用户输入的数字会减少一定数量。像这样的东西:

Update by (Increment/Decrement):decrement
Enter starting number:15
Enter update number:3
Enter end number:3
loop#1  value=15
loop#2  value=12

结束编号是循环停止的位置,更新编号是起始编号应该减少多少。到目前为止,这是我拥有的代码,我一直在思考如何保持循环直到结束编号​​。

package jaba;
import java.util.Scanner;


public class loop {

public static void main(String[] args) {
    Scanner scan = new Scanner(system.in);
    Scanner input = new Scanner(system.in);

    System.out.print("Update by (Increment/Decrement):");
    String Decrement = scan.nextLine();
    
    System.out.print("Enter starting number:");
    String number = scan.nextLine();
    
    System.out.print("Enter update number:");
    String upnumber = scan.nextLine();
    
    System.out.print("Enter end number:");
    String endnumber = scan.nextLine();
    
    
    
    int i,j;
    
    i = 15;
    j = 1;
    
    do {
        
        System.out.println("loop#" +j+ "\tvalue="+i);
        j++;
        
        
        
        }while(i<15);
            
        i = i-3;
        
        System.out.println("loop#" +j+ "\tvalue="+i);
        };
        
        
}

解决方法

这样的事情怎么样:

public class loop {

    public enum Operation {INCREMENT,DECREMENT,INVALID}

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

        System.out.print("Update by (Increment/Decrement):");
        String operationString = scan.nextLine();

        System.out.print("Enter starting number:");
        String numberString = scan.nextLine();

        System.out.print("Enter update number:");
        String upnumberString = scan.nextLine();

        System.out.print("Enter end number:");
        String endnumberString = scan.nextLine();

        // Determine and parse stuff
        int startNumber = Integer.parseInt(numberString);
        int updateNumber = Integer.parseInt(upnumberString);
        int endNumber = Integer.parseInt(endnumberString);
        // Parse operation,but assume invalid operation
        Operation operation = Operation.INVALID;
        if (operationString.equalsIgnoreCase("increment")) {
            operation = Operation.INCREMENT;
        } else if (operationString.equalsIgnoreCase("decrement")) {
            operation = Operation.DECREMENT;
        }

        // now do the "meat" of the assignment
        int loopNumber = 0; // we'll keep the loop number as a separate counter
        switch (operation) {
            case INCREMENT:
                for (int i = startNumber; i < endNumber; i = i + updateNumber) {
                    loopNumber++;
                    performAssignmentPrinting(loopNumber,i);
                }
                break;

            case DECREMENT:
                for (int i = startNumber; i > endNumber; i = i - updateNumber) {
                    loopNumber++;
                    performAssignmentPrinting(loopNumber,i)
                }
                break;

            case INVALID:
            default:
                throw new IllegalStateException("Please enter supported operation! (increment/decrement)");
        }
    }

    private static void performAssignmentPrinting(int loopNumber,int value) {
        System.out.println("loop#" + loopNumber + "\tvalue=" + value);
    }
}

或 do/while 版本:

        // now do the "meat" of the assignment
        int currentNumber = startNumber;
        int loopNumber = 0; // we'll keep the loop number as a separate counter

        do {
            loopNumber++;
            switch (operation) {
                case INCREMENT:
                    currentNumber += updateNumber;
                    performAssignmentPrinting(loopNumber,currentNumber);
                    break;

                case DECREMENT:
                    currentNumber -= updateNumber;
                    performAssignmentPrinting(loopNumber,currentNumber);
                    break;

                case INVALID:
                default:
                    throw new IllegalStateException("Please enter supported operation! (increment/decrement)");
            }

        } while (currentNumber != endNumber);

,

你有 i = i-3; 循环。 将 i 的递减移动到循环中:

    do {
        System.out.println("loop#" + j + "\tvalue=" + i);
        j++;
        i = i - 3;
    } while (i > endnumber);
,

For 循环是您程序的解决方案。 for(a ; b ; c) {...}
谷歌 for 循环的工作原理。并尝试了解 a、b、c 三个部分的工作原理。

伪:

// if decrease mode
    // for (i = upperbound ; i >= lowerbound ; i-= decrement)
        // print i

// if increase mode
    // for (i = lowerbound ; i <= upperbound ; i+= increment)
        // print i

更新:这足以让您开始并在您的旅程中添加更多验证。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。