小编Esb*_*n86的帖子

将带有continue语句的for循环转换为while循环

我正在进行一项练习,其中基于for循环的一小段代码被转换为使用while循环执行相同的操作.目的转换是错误的,如下所示:

int sum = 0;

    for (int i = 0; i < 4; i++) {
        if (i % 3 == 0) continue;
        sum += i;   
    }
System.out.println(sum); // prints 3
Run Code Online (Sandbox Code Playgroud)

这转换为:

int i = 0, sum = 0;

        while (i < 4) {
            if (i % 3 == 0) continue;
            sum += i;   
            i++;    
        }
System.out.println(sum); // will not print
Run Code Online (Sandbox Code Playgroud)

在练习中,我被要求解释为什么转换是错误的然后修复它.我的想法是:

  1. 随着初始值I = 0,这将触发继续瞬间进入将循环后,因为(0%3 == 0)将使if语句真.只要初始值为0,这将执行循环,以便跳过它无数次.我尝试更改i = 1的初始值,但是打印了noe sum.然后我尝试在执行if语句 …

java for-loop continue while-loop

7
推荐指数
3
解决办法
1775
查看次数

Java中的手动列表改组每次都会产生相同的结果

我正在尝试创建一个手动洗牌的方法.该列表被洗牌,但每次都会产生相同的结果.代码示例如下:

package ch11;
import java.util.ArrayList;
import java.util.Arrays;
public class Chapter_11_E07_ShuffleArrayList {

    public static void main(String[] args) {

        Integer[] array = {1, 2, 3, 4, 5, 6, 7, 8};

        ArrayList<Integer> intList = new ArrayList<>(Arrays.asList(array));

        System.out.println("Before shuffle: ");
        for (Integer x: intList)
            System.out.print(x + " ");

        shuffle(intList);

        System.out.println("\nAfter shuffle: ");
        for (Integer x: intList)
            System.out.print(x + " ");

    }

    public static void shuffle(ArrayList<Integer> intList) {
        // Simple solution
        // java.util.Collections.shuffle(intList);

        // Manual shuffle
        for (Integer x: intList) {

            int newIndex = (int) …
Run Code Online (Sandbox Code Playgroud)

java list

2
推荐指数
1
解决办法
426
查看次数

使用滑块更改文本颜色

我正在尝试制作一个程序,允许用户通过单选按钮选择RGB颜色,并使用滑块将值更改为0 - 255.颜色更改应适用于文本.选择R,G或B时,文本中只应显示所选颜色(即,如果选择绿色,则红色和蓝色值为0).

目前该计划在某种程度上有效.例如,如果滑块位于值150,并且我选择了一种新颜色,然后移动滑块,则文本颜色设置为150,或者在任何情况下滑块设置为的值,然后再尝试将其移动到新的价值.如果我想要更新滑块,我必须在移动滑块之前选择一种新颜色.它仅为每种选定的颜色更新一次.我希望它能无缝更新所选颜色.代码示例如下:

public class Oblig5 extends Application {

    static int colorValue = 0;
    static int red = 0;
    static int green = 0;
    static int blue = 0;

    public static void main(String[] args) {

        launch(args);

    }

    public void start(Stage primaryStage) {
        // Create panes
        BorderPane bPane = new BorderPane();
        VBox vBox = new VBox();
        bPane.setLeft(vBox);

        // Create text and place it in the pane
        Text text = new Text("Oblig 5");
        text.setFont(Font.font("Times New Roman", FontWeight.NORMAL, FontPosture.REGULAR, 40));
        bPane.setCenter(text);

        // …
Run Code Online (Sandbox Code Playgroud)

javafx colors slider

1
推荐指数
1
解决办法
1460
查看次数

创建我自己的String类/子串方法

我正在进行一项练习,包括创建我自己的String类实现,以及此类中存在的一些方法.我在创建返回子字符串的工作方法时遇到了一些麻烦.到目前为止,我的类实现看起来像这样:

public class MyString2 {

    private String s;

    public MyString2(String s) {
        this.s = s;
    }

    public MyString2 substring(int begin) {

        String substring = "";

        for (int i = begin; i < s.length(); i++) {
            substring += s.charAt(i);
        }
        return new MyString2(substring);
    }

}
Run Code Online (Sandbox Code Playgroud)

该方法背后的想法非常简单;

创建一个空子字符串,然后从输入字符串开始,从所选索引开始连接每个字符.以下是测试类的主要方法:

public static void main(String[] args) {

        MyString2 s1 = new MyString2("string");     
        MyString2 substring = s1.substring(3);

        System.out.println(substring);

    }
Run Code Online (Sandbox Code Playgroud)

该程序返回ch10.MyString2@2a139a55,任何人都可以告诉我我的程序有什么问题吗?

java string substring

0
推荐指数
1
解决办法
2873
查看次数

标签 统计

java ×3

colors ×1

continue ×1

for-loop ×1

javafx ×1

list ×1

slider ×1

string ×1

substring ×1

while-loop ×1