【问题标题】:bluej program for displaying following pattern for a school project用于显示学校项目以下模式的 bluej 程序
【发布时间】:2018-11-13 20:55:11
【问题描述】:

我对 BlueJ 编程环境中的 Java 有相当的了解。但是我不知道编写一个循环函数来创建它 图案。任何帮助或指示都会非常有帮助。

    1
    3 1
    5 3 1
    7 5 3 1
    9 7 5 3 1

到目前为止我的代码...

import java.util.*;
public class scanner {
    public static void main(){
        Scanner sc = new Scanner(System.in);
        int val = 1;
        for( int i=1; i < 5; i++){
            for(int j = 1; j > i; j--){
                System.out.print(j+" ");
                if(val != 1) {
                   System.out.print(1);
                }
                val +=1;
            }
            System.out.println();
        }
    }
}

【问题讨论】:

    标签: java algorithm for-loop bluej


    【解决方案1】:

    你的方法太复杂了。我建议您定义关键变量并将它们用于算法。顺便说一句,你不需要使用java.util.Scanner,因为你没有从控制台收到任何输入值。

    int end = 1;
    int step = 2;
    int rows = 5;
    
    for (int i=0; i<rows; i++) {
        for (int j=0; j<i+1; j++) {
            int number = end + i*step - j*step;
            System.out.print(number + " ");
        }
        System.out.println();
    } 
    

    输出(make sure):

    1 
    3 1 
    5 3 1 
    7 5 3 1 
    9 7 5 3 1 
    

    此外,在您的代码中,您有以下行:

    for (int j = 1; j > i; j--) { ...
    

    由于条件j &gt; ij 相减,此循环永远不允许进入其主体。我建议您调试您的程序并跟踪 ij 值以了解发生了什么。

    【讨论】:

    • 秒杀我!
    • 他比你打败了更多,但首先弄错了数字;)
    • 没关系,因为您的答案可能会好得多。那我会赞成的。
    • @Mark:是的,我之前(并已删除)的答案确实有错误的输出 - 这是错误的。这个绝对正确。
    猜你喜欢
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多