当前位置: 首页 > 知识库问答 >
问题:

在for循环中转换坡度

安博文
2023-03-14

我有以下代码:

public static void main(String[] args) {
        convert13to7(7);

    }

    public static int convert13to7(int grade) {
        int newGrade = 0;
        int[] scale13 = {00, 03, 5, 6, 7, 8, 9, 10, 11, 13};
        int[] scale7 =  {-3, 00, 00, 02, 4, 7, 7, 10, 12, 12};

        for (int i = 0; i < scale13.length; i++) {
            if (grade == scale13[i]) {
            newGrade = scale7[i];
            }
        }
    return newGrade;
    }

这段代码的目的是将旧的丹麦等级转换成新的等级,但问题是当使用< code>convert13to7函数时,我没有得到任何输出。有人看到这里的问题了吗?

共有3个答案

姬和豫
2023-03-14

您需要在调用方法的地方收集输出。

package com;

public class Test{
    public static void main(String[] args) {
        // collect output here
        int newGrade = convert13to7(7);
        System.out.println(newGrade);
    }

    public static int convert13to7(int grade) {
        int newGrade = 0;
        int[] scale13 = {00, 03, 5, 6, 7, 8, 9, 10, 11, 13};
        int[] scale7 =  {-3, 00, 00, 02, 4, 7, 7, 10, 12, 12};

        for (int i = 0; i < scale13.length; i++) {
            if (grade == scale13[i]) {
            newGrade = scale7[i];
            }
        }
        // alternatively you can print output here
        System.out.println(newGrade);
    return newGrade;
    }

}
董砚
2023-03-14

要打印结果,请使用< code > system . out . println():

int grade = convert13to7(7);
System.out.println(grade);

我建议您使用< code>Map,而不是每次迭代一个数组:

public final class GradeConverter {

    private final Map<Integer, Integer> map13to7 = new HashMap<>();

    {
        map13to7.put(0, -3);
        map13to7.put(3, 0);
        map13to7.put(5, 0);
        map13to7.put(6, 2);
        map13to7.put(7, 4);
        map13to7.put(8, 7);
        map13to7.put(9, 7);
        map13to7.put(10, 10);
        map13to7.put(11, 12);
        map13to7.put(13, 12);
    }

    public int convert10to7(int grade) {
        return map13to7.getOrDefault(grade, 0);
    }

}

下一点,注意写03而不是3,因为在Java中,前缀是八进制的标记。E、 g.077是十进制值63

谭昕
2023-03-14

convert13to7生成一个转换后的值,它不会打印它。

System.out.println(convert13to7(7));

其他小问题:

>

  • 方法名称不清楚。
  • 您不一定需要在每次调用方法时初始化这两个数组。
  • 考虑验证。如果您未能转换输入,则返回0不是一个好的选择。

    想想List.indexOf。它更简单、更直观。

  •  类似资料:
    • 问题内容: 我有这个for-in循环: 现在,我希望将按钮强制转换为自定义类,以便可以使用其属性。 我尝试了这个: 但是它不起作用,给我一个错误: 我尝试了这个: 但是,这也不起作用。 问题答案: 对于 Swift 2 和更高版本: Swift 2 在 for 循环中添加了 大小写模式 ,这使得在 for 循环中进行类型转换更加容易和安全: 为什么这比您在 Swift 1.2 和更早版本中可以做的

    • 我已经了解了一些关于流的知识,并且知道它们可以用来代替循环。对于这个玩具示例,我使用一个图形数据库来存储一组字符串。数据库将它们存储为顶点。我想检索这些顶点,并将它们转换为字符串,而是使用流。每个顶点都有一组性质;我给它一个键,它返回一个值。如果一个顶点具有我正在寻找的属性,我将它添加到列表中。如果没有,我存储顶点ID。 我有一个for循环,但我不确定如何使用流来代替。代码如下:

    • 我已经开始使用Java8,并尝试将代码中的一些循环和旧语法转换为lambdas和streams。 举个例子,我试图转换这个time和for循环到流,但我没有得到它的权利: 我想知道是否有可能将上面的示例转换为单个流,其中for循环内部有一个而循环。

    • 问题内容: 我试图在for循环内发出几个服务器请求。我发现了[\这个问题,\并实施了建议的解决方案。但是,它似乎不起作用。 如果我删除了for循环并将所有xmlhttp [i]更改为xmlhttp,那么对于一个元素来说一切都很好,但是我无法发出多个请求。在此先感谢您的任何建议。 问题答案: 尝试下面的代码段 响应

    • 问题内容: 是否每个递归函数都有一个等效的for循环?(两者都达到相同的结果)。 我有这个递归函数: 假设单词是Set [],并且单词[i] =单词长度为i的集合。 我想做的是:使用一个单词(例如,“ stackoverflow”,没有空格)启动递归,我试图查找该单词是否可以切成子单词(“ stack”,“ over”,“ flow”) ..子词的最小长度为3,并且假设长度为i的子词在Set wo

    • 我想在文件目录上迭代此代码: 我目录中的图像: Film_Crew.jpg Film\u Crew副本。jpg公司 Film_Crew复制2.jpg Film\u Crew副本3。jpg公司 Film\u Crew副本4。jpg公司 Film\u Crew副本5。jpg公司 Film\u Crew副本6。jpg公司 我尝试使用此代码,因为上次尝试时它对我有效,但现在不起作用。 我在终端的Mac电脑