你能在if-else
语句的条件下使用for循环吗?例如,像这样......
if(
for(q = 0; q < 10; q++){
values[q]>=values[q+1];
}
)
{
done = 0;
}
这是加载我似乎无法放置的错误。我希望if语句检查int[]
我调用values
的顺序是从最大到最小,如果是,则将int
变量done
设置为等于0.
我刚刚开始参加编程课程,我打赌这是一个非常愚蠢的错误,但是我一直试图弄清楚这一点,并且一些帮助绝对是太棒了。
答案 0 :(得分:3)
您应首先解决您的情况(即按顺序排列您的数组),然后将其输入您的if
语句。像这样......
boolean isOrdered = true;
for(q = 0; q < 10; q++){
if (values[q]>=values[q+1]){
// in order
}
else {
// not in order
isOrdered = false;
break; // we have found a false, so we can quit out of the for loop
}
}
if (isOrdered){
// do something if the array is in order;
}
答案 1 :(得分:2)
如果将逻辑重构为返回布尔值的方法,则可以执行此操作:
if (isInOrder(values)) {
//
}
private static boolean isInOrder(int[] array) {
for (int i = 0; i < array.length - 1; i++)
if (array[i] > array[i+1])
return false;
return true;
}
答案 2 :(得分:1)
for循环可以存在于if块
中if (true) {
for (int i = 0; i < 5; i++) {
System.out.println("Hello, World!");
}
}
但for循环可以不成为if块的条件
if( for (int i = 0; i < 5; i++) { } ) { }
for循环不是布尔值。每个if条件都需要一个布尔值。
答案 3 :(得分:0)
if
条件必须求值为某个布尔值,而这个for
循环不会发生这种情况。
它只能在if
语句体中,如
if(someCondition)
for(int i = 0;i < 10;i++)...
为了实现您的目标,像这样的代码可能有所帮助:
boolean ordered = true;
for(int i = 0;i < array.length - 1;i++) {
if(array[i] > array[i+1]) {
ordered = false;
break;
}
}
if(ordered) // your if body here
答案 4 :(得分:0)
&#34;内部的表达式,如果&#34;条件应该计算为布尔值或布尔值,否则代码将无法编译。
检查Java规范页面here
答案 5 :(得分:0)
我认为您可能想要备用嵌套,并从done = 0
(即列表正确排序)的假设开始,除非您在循环中证明它不是真的。
public class Play{
public static void main(String[] args) {
done = 0;
for(q = 1; q < 10; q++){
if (values[q-1]<values[q]) {
done = 1;
break;
}
}
}
}
答案 6 :(得分:0)
否即可。 If
需要布尔测试。 For loop
不返回布尔值。您可以将支票分成另一个功能。
if( isArrayOrdered(values) ){
done = 0;
}
// assuming values is an array of `int` values
private boolean isArrayOrdered( int[] values){
for(int q = 1; q < values.length; q++){
if( values[q] > values[q-1] ){
return false;
}
}
return true;
}
答案 7 :(得分:0)
你需要将逻辑分解为步骤。
首先,一个方法
boolean isInOrder (int [] values) {
for(int q = 0; q < values.length - 1; q++){
if (values[q] > values[q+1]) {
return false;
}
}
return true;
}
//现在让我们调用这个方法
if (isInOrder (values)) {
System.out.println ("In Order");
}
else {
System.out.println ("Not In Order");
}
答案 8 :(得分:0)
不可能把'#34; for循环&#34; if语句和#34;(&#34;和&#34;)&#34;之间的陈述。但是如果你写'&34; for loop&#34;在if语句&#34; {&#34;和&#34;}&#34;。谢谢