删除for循环中的最后一个逗号(java)

codeup:

我是编码的新手,我正在尝试删除最后一个循环的最后一个逗号。如果能得到帮助,那就太好了!

import java.util.Scanner;
public class Main {

    public static void main(String[] args) {
        Scanner dev = new Scanner(System.in);
        int num1, num2;
        num1 = dev.nextInt();
        num2 = dev.nextInt();

        int numa = 1;
        System.out.println();
        for (numa = num1; numa <= 100; numa++) {
            if (numa / num1 == 1 && numa % num1 == 0)
                System.out.print(numa);
            else if (numa % num1 == 0)
                System.out.print("," + numa);

        }
        int numb = 1;
        System.out.println();
        for (numb = num2; numb <= 100; numb++) {
            if (numb / num2 == 1 && numb % num2 == 0)
                System.out.print(numb);
            else if (numb % num2 == 0)
                System.out.print("," + numb);

        }

        int numc = 1;
        System.out.println();
        for (numc = num1; numc <= 100; numc++) {
            if(numc / num2 == 2 && numb % num2 == 0)
                System.out.print(numc);
            else if(numc % num1 == 0 && numc % num2 == 0)
                System.out.print(numc + ",");

        }
    }
}
图库西:

我建议使用以下更标准的方法,因此,对于长期的Java程序员而言,它是可读的(i用于整数循环计数器,更喜欢使用count<代替<=,从而简化了数学表达式):

    System.out.println();
    boolean lastWasEqual = false;
    for (int i = num1; i < 101; i++) {
        boolean isHalf = (2 * i == num2);  // a/b = 2 <=> 2a = b
        boolean isEqual = (i == num2);     // (a%b) = (b%a) = 0 <=> a = b
        
        if (isHalf || isEqual) {
           if (lastWasEqual) {
              System.out.print(","); 
           }
           System.out.print(i);
           lastWasEqual = isEqual;
        }
    }

这里的想法是,仅,当我们知道(a)准备好打印(lastWasEqual)和(b)在它之后将输出时,才输出一次(这样就永远不会打印“最后一个逗号”)。

通过看数学,您最多可以看到isEqual一次,isHalf也最多一次。它是很容易看到的时候,他们将是真实的。因此,不需要循环:

 System.out.println();
 boolean willReachEqual = (num1 <= num2) && (num2 <= 100);
 boolean willReachHalf  = (num1 * 2 <= num2) 
                       && ((num2 % 2) == 0) && (num2 <= 200);
 boolean willReachBoth = willReachEqual && willReachHalf;

 System.out.println(
           (willReachHalf ? (num2 / 2) : "") + 
           (willReachBoth ? "," : "") + 
           (willReachEqual ? num2 : ""));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用数组删除for循环中的最后一个逗号

如何从foreach循环中删除最后一个逗号?

如何删除for循环中的最后一个逗号

从php foreach循环中删除最后一个逗号

如何以一种简单的方式从C ++循环中删除最后一个逗号?

去模板删除范围循环中的最后一个逗号

从while循环中的字符串中删除最后一个逗号

从循环中的数组值中删除最后一个逗号

如何在Wiremock的每个循环中删除最后一个逗号

如何在while循环中的最后一个数字之后删除尾随逗号

Javascript:如何在for循环中删除最后一个逗号

如何避免python循环中的最后一个逗号

Django循环–删除最后一个逗号

PHP删除for循环结果的最后一个逗号

使用for循环时如何删除最后一个逗号?

最后一个元素未在循环中删除

如何在最后一个循环中删除“AND”(每个)

Java-从for循环输出数字时如何删除最后一个逗号

从while循环中的最后一项删除逗号

Python从for循环中的最后一行删除逗号

删除每行的最后一个逗号

不要在for循环中的最后一个元素之后写逗号

为每个循环中的最后一个元素去除逗号

从INSERT到WHILE循环中取最后一个逗号

从 bash for 循环生成的字符串中删除最后一个逗号

根据架构脚本的需要删除最后一个循环逗号

从嵌套forEach循环的最后一个结果中删除逗号

如何在C ++中最后一个数字/输出循环后删除逗号

删除循环中的最后一个空间,并保存其余空间