假设我们有一个整数元素x [N]的数组。如何知道元素x [1]是否大于或等于同一数组的所有其他元素? 我使用for循环,但它不起作用,因为我想检查一个元素是否比所有其他元素更大。如果我使用for循环,相反,如果元素大于其他元素之一,它会做一些事情,这对我的目的是错误的。你能帮我吗?
这是我的意思的一个例子:
for(int i = 0; i < num && i!= j; i++) {
if(elementiInseriti[j] >= elementiInseriti[i]) {
do something;
}
}
答案 0 :(得分:1)
你可以做到
int x = 1; //position you wanna compare
boolean state = true;
for(int i = 0; i < elementiInseriti.length; i++) {
if(elementiInseriti[x] < elementiInseriti[i]) {
state = false;
break; //no need to check for other elements coz at least 1 lesser than the conpared
}
}
if(state)
// do your stuffs
答案 1 :(得分:0)
使用布尔变量
boolean doSomething = true;
for(int i = 0; i < num && doSomething; i++) {
if(elementiInseriti[j] < elementiInseriti[i]) {
doSomething = false;
}
}
if (doSomething)
// do something
如果elementiInseriti[j]
小于任何其他元素,则该标志将为false,您将不会执行任何操作。
答案 2 :(得分:0)
基本思想是,只要给定元素最大,您就需要遍历整个数组并累积boolean
。
请注意,不能在i!=j
循环中具有for
条件,因为这会过早终止循环,并且仅在之前检查元素 它在数组中:
boolean isGreatest = true;
for(int i = 0; i < elementiInseriti.length && isGreatest; i++) {
if (i != j && elementiInseriti[j] < elementiInseriti[i]) {
isGreatest = false;
}
}
if (isGreatest) {
// do something;
}