我试图根据2个变量打印出结果。我有一个8个元素的数组...
a
的值,它是单独计算的。如果a介于某些值之间,则会打印出结果。我尝试打破多个循环,但是当我运行程序时,某些时间取决于输入即可获得"失败者"和#34;体面"打印在一起,当我只期待两个中的一个。
outerloop:
for (int i = 0; i < array.length; i++)
{
if (module[i] < 40 )
{
System.out.println("Loser");
}
else
{
if (a >= 0 && a < 40)
{
System.out.println("Loser");
}
else if (a >= 40 && a < 60)
{
System.out.println("Decent");
}
else if (a >= 60)
{
System.out.println("Leet");
}
}
break outerloop;
}
答案 0 :(得分:2)
您无法轻松地在同一循环中检查它们。我要分手了。在我的头顶:
boolean loser = false;
for (int i = 0; i < array.length && !loser; i++) {
if (module[i] < 40 || a < 40) {
System.out.println("Loser");
loser = true;
}
}
if (!loser) {
if (a >= 40 && a < 60) {
System.out.println("Decent");
}
else if (a >= 60) {
System.out.println("Leet");
}
}
答案 1 :(得分:0)
请勿使用标签进行控制流程。相反,将功能放在一个单独的方法中。
Java并不像Fortran或Basic那样使用{{3}}来使用goto
来移动到程序中的各个点,这通常写在一个范围内。像这样:
function(){
section1: if(condition) goto section2
section2: if(condition) goto sectionN
....
sectionN: if(condition) goto section1
}
Java通常更像
java.exe:Main{
Class(){
classRelatedMethod(){
Class(){ ... // recursive definition }
}
}
}
这允许每个class
定义彼此耦合的可重用,离散的功能块。如果不是,则应定义新的class
。虽然许多其他语言(包括Fortran和BASIC)可以实现这一点,但Java是从头开始设计的(同时也是一种独立于平台的语言,但这不是相当同样的事情。)
所有这些都是非常学术性的,可以很容易地与Google一起找到。
答案 2 :(得分:0)
你在这里遇到了一个很大的问题:你想要作为一个群体“得分”的一系列价值观。
如果有任何值&lt; 40,你想停止寻找并打印'失败者'。
如果当前值>> = 40,则需要继续查看,因为下一个值可能是&lt; 40;
但是,您还想知道阵列中某处是否有'leet'得分。
所以:
boolean loser = false, leet = false;
for( int i = 0; i < array.length; ++i ) {
if( array[i] < 40 ) {
loser = true;
break;
}
// if it's not < 40, it must be more
// now check if it qualifies as leet
if( array[i] > 60 ) {
leet = true;
}
}
if( loser ) {
print loser
} else if( leet ) {
print leet
} else {
print decent
}