import java.util.Scanner;
public class hil {
public static void main(String[] args){
Scanner m = new Scanner(System.in);
System.out.print("Insert a number:");
int num = m.nextInt();
int[] ar = { 10, 20, 30, 40, 50 };
int sum = 0;
for (int i = 0; i < ar.length; i++) {
sum += i;
for (int n : ar) {
if (num == n) {
System.out.print(true);
} else {
System.out.print(false);
}
}
}
}
}
这是我的代码 我得到正确的输出,但它对数组中的所有值显示true和false。不仅是单一的价值。如何获取输入值的true和false布尔值,而不是值的其余部分。
当前输出:
插入一个数字:20
falsetruefalsefalsefalsefalsetruefalsefalsefalsefalsetruefalsefalsefalsefalsetruefalsefalsefalsefalsetruefalsefalsefalse
期望的输出:
插入一个数字:20
真
答案 0 :(得分:1)
我相信你正在寻找脏位模式。
import java.util.Scanner;
public class hil {
public static void main(String[] args){
Scanner m = new Scanner(System.in);
System.out.print("Insert a number:");
int num = m.nextInt();
int[] ar = { 10, 20, 30, 40, 50 };
Boolean found = false;
for (int n : ar) {
if (num == n) {
found = true;
break;
}
System.out.print(found);
}
}
我们的想法是将位(在这种情况下为布尔值)初始化为“清理”。然后给它一个机会弄脏&#39;。一旦弄脏了&#39;它保持“肮脏”。无论您是否考虑清洁&#39;是真还是假。
这里的逻辑与&#39;或所有这些相等比较相同。
添加break
仅仅是微优化。没有它,逻辑就是一样的。添加它只会使它更快一点。也许。
答案 1 :(得分:0)
假设您只是想检查用户提供的号码是否在该阵列中;那么你必须检查一下;并记住这个决定:
boolean numberFound = false;
for (int numberFromArray : nums) {
if (numberFromArray == num) {
numberFound = true;
}
}
然后在循环之后...打印布尔值。一次。
答案 2 :(得分:0)
只需在循环外部存储一个布尔值,然后打印出来。
boolean inArray = False;
for(int n: ar){
if (num == n){
inArray = True;
}
}
System.out.print(inArray);
答案 3 :(得分:0)
import java.util.Scanner;
public class hil {
public static void main(String[] args) {
Scanner m = new Scanner(System.in);
System.out.print("Insert a number:");
int num = m.nextInt();
int[] ar = {10, 20, 30, 40, 50};
int sum = 0;
Boolean inArray = false;
for (int n : ar) {
sum += n;
if (num == n) {
inArray = true;
}
}
System.out.println(inArray);
System.out.println(sum);
}
}
注意:我假设您需要元素的总和,这也是您尝试使用其他循环的原因。
答案 4 :(得分:-2)
我认为如果你想打印print true。你应该用双引号括起来。喜欢:System.out.println(&#34; true&#34;);
........................我可能错了......但我试图建议一个可能的解决方案。