嗨=)我的编码中有一个问题我不知道,所以我在这里做了类似的编码,以寻求帮助。
这是我的编码:
package test;
public class Test {
public static void main(String[] args) {
int i=0, j=5;
while(i<10){
skip(i,j);
System.out.println(i);
i++;
}
}
public static void skip(int i, int j){
if(i==j){
i+=1;
}
}
}
我的问题是如何跳过调用函数跳过整数5?
我的结果应该是这样的:(&#34; 5&#34;没打印出来)
0
1
2
3
4
6
7
8
9
答案 0 :(得分:2)
您无法修改调用者对原始值的引用。它们没有引用,包装类型Integer
是不可变的。我想你正在寻找像
public static void main(String[] args) {
int i = 0;
while (i < 10) {
System.out.println(i);
i = skip(i);
}
}
public static int skip(int i) {
return (i == 4) ? i + 2 : i + 1;
}
上述三元可以表示为
public static int skip(int i) {
if (i == 4) return i + 2;
return i + 1;
}
修改强>
或者,
public static int skip(int i) {
if (i + 1 == 5) return i + 2;
return i + 1;
}
答案 1 :(得分:1)
if (i == 5) {
i++;
continue;
}
你需要在继续之前将i递增1,否则它将以无限循环结束,因为我的值在5之后没有变化。
<强>更新强>
尝试运行此代码。
它不是打印abc
,所以它是无限循环
public static void main(String[] args) {
int i=0;
while(i<10){
if (i == 5) {
System.out.println(i);
//i++;
continue;
}
System.out.println(i);
i++;
}
System.out.println("abc");
}
答案 2 :(得分:0)
试
package test;
public class Test {
public static void main(String[] args) {
int i=0;
while(i<10){
i=skip(i);
}
}
public static int skip(int i){
if(i!=5){
System.out.println(i);
}
return i+1;
}
}
<强> 修改 强>
package test;
public class Test {
public static void main(String[] args) {
int i=0;
while(i<10){
i=skip(i);
System.out.println(i);
}
}
public static int skip(int i){
if(i==4){
i +=1;
}
return i+1;
}
}
答案 3 :(得分:0)
然后试试这个:)
if(i==5){
i=skip(i);
}
private static int skip(int i) {
i+=1;
return i;
}
答案 4 :(得分:0)
请查看以下代码。
package test;
public class Test {
int i=0;
public void skip(int x)
{
if(x==i)
{
i++;
}
}
public static void main(String args[])
{
int j=5;
Test t=new Test();
while(t.i<10)
{
t.skip(j);
System.out.println(t.i);
t.i++;
}
}
}