iv得到了一个检查两个数组中的值的循环。如果找到匹配的值,这些值将被打印到控制台。
我还包含了一个 print 语句,该语句旨在仅在未在任何地方找到匹配项时才打印。
public class MatchTest
{
public static void main(String []args)
{
boolean matchFound=true;
int [] x = {4,5,6,1,2};
int [] y = {1,2,3};
getMatchingNumbers(x,y, matchfound);
}
//method to check numbers in each array and prints the numbers that match ( if found)
public static void getMatchingNumbers(int [] a, int []b, boolean c)
{
for(int i : a)
{
for (int j : b)
{
if (i==j)
System.out.println("matching numbers are " + i);
else
c = false;
}
}
// how do i get this to print ONLY if no matches are found any where
if (c == false)
System.out.println("no matches found");
}
}
此时,如果传入的数组包含一些匹配的数字和一些不匹配的数字,我仍然会得到没有找到匹配的消息。相反,我希望只有在任何地方都不存在匹配时,才打印“找不到匹配”消息。
我认为这应该是一个简单的更正,但我看不出我哪里出错了。
建议不胜感激。
public class MatchTest {
public static void main(String[] args) {
boolean matchFound = false;
int[] x = {
4,
5,
6,
1,
2
};
int[] y = {
1,
2,
3
};
getMatchingNumbers(x, y, matchFound);
}
//method to check numbers in each array and prints a the numbers that match ( if found)
public static void getMatchingNumbers(int[] a, int[] b, boolean c) {
for (int i: a) {
for (int j: b) {
if (i == j) {
System.out.println("matching numbers are " + i);
c = true;
}
}
}
// how do i get this to print ONLY if no matches are found any where
if (!c) System.out.println("no matches found");
}
}`
我在代码中做了非常小的更改。你的代码是糟糕的编码风格。为什么将布尔值传递给函数?没有必要。在Java中,您将布尔c传递到方法中。实际上,它在方法内部创建局部变量布尔c并复制传递的值。
您只需要在开始时将布尔matchFound设置为false。然后在方法getMatchingNumbers中,将c=true添加到if(i==j)块。删除不需要的else块。
public class MatchTest {
public static void main(String []args){
boolean matchFound=false;//set this to FALSE at beginning
int [] x = {4,5,6,1,2};
int [] y = {1,2,3};
getMatchingNumbers(x,y, matchfound);
}
//method to check numbers in each array and prints a the numbers that match ( if found)
public static void getMatchingNumbers(int [] a, int []b, boolean c){
for(int i : a){
for (int j : b){
//Modified the if block and removed the else block
if (i==j){
System.out.println("matching numbers are " + i);
c=true;
}
}
}
if (c == false) System.out.println("no matches found");
}
}
您将c设置为false,只有在数字匹配时才设置为true
public static void getMatchingNumbers(int [] a, int []b, boolean c){
c = false;
for(int i : a){
for (int j : b){
if (i==j){
System.out.println("matching numbers are " + i);
c = true;
}
}
}
if (!c) System.out.println("no matches found");
}
所以你找到了所有的匹配。
在if语句中返回时:
if(i==j){
System.out.println("matching numbers are " + i);
return;
}
你只找到第一个匹配项。
我正试图找到一种方法来使我的程序打印Println语句一次,因此,如果找到一个朋友,它会说:找到以下朋友:-f1 -f2 -f3或“找不到朋友”语句只打印一次。 现在它每次迭代循环时都会打印Println。。。 请帮忙好吗?
我有一些嵌套代码,我想检查它的条件并打印一次语句。但是我不知道如何改革for循环,也不知道哪个是这个situstin使用的理想循环。?我已经写了这个,我得到你好打印4次…我想它打印一次…请帮忙。
到目前为止,我的计划是: 现在我需要它做的是生成一个从华氏度到摄氏度的20个温度转换表。如果用户输入 0,下面是输出可能是什么样子的前 3 行的示例: 华氏温度:0摄氏度:-17.78 华氏度: 5 摄氏度: -15.00 华氏:10摄氏度-12.22度 等… 问题是,如果输入大于20,它将不会循环正确的次数。 下面是一个例子,说明如果用户输入5: 输出: 输入您的起始温度(华氏:5)。 华氏摄氏
目前控制台打印循环中的所有值,但只需要打印最后一个
我试图实现每秒循环一次的ScheduledExecutorService线程,但现在它只循环一次。 我的问题是如何设置它,使它周期性地循环,而不是一次迭代? 另外,如何将连接池传递给线程,以便每次迭代都可以查询数据库?任何帮助都非常感谢。