我正在进行一项练习,其中基于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)
在练习中,我被要求解释为什么转换是错误的然后修复它.我的想法是:
随着初始值I = 0,这将触发继续瞬间进入将循环后,因为(0%3 == 0)将使if语句真.只要初始值为0,这将执行循环,以便跳过它无数次.我尝试更改i = 1的初始值,但是打印了noe sum.然后我尝试在执行if语句 …
我正在尝试创建一个手动洗牌的方法.该列表被洗牌,但每次都会产生相同的结果.代码示例如下:
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) 我正在尝试制作一个程序,允许用户通过单选按钮选择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) 我正在进行一项练习,包括创建我自己的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,任何人都可以告诉我我的程序有什么问题吗?