gpt4 book ai didi

java - 其他语句不打印。使用二进制搜索

转载 作者:行者123 更新时间:2023-11-29 05:07:22 24 4
gpt4 key购买 nike

我有一个数字列表,我试图在这个列表中找到数字“58”和“85”。如果它是数字,它应该打印 True,否则打印 False。到目前为止,我一直在尝试获得 58 部分。当我运行该程序时,它只打印“True 58”我的 else 语句有问题吗?我似乎找不到问题。

import java.util.Arrays;


public class asgn9
{
public static void main(String[] args)
{
int[] data = { 12, 25, 35, 45, 58, 64, 77, 80, 84, 93 };
int searchedValue = 58;
int searchedValue2 = 85;

keyTest(data, searchedValue, searchedValue2);
}

public static void keyTest(int[] data, int searchedValue, int searchedValue2)
{
boolean found = false;
int low = 0;
int high = data.length - 1;
int pos = 0;

while (low <= high && !found)
{
pos = (low + high) / 2; // Midpoint of the subsequence
if (data[pos] == searchedValue)
{ found = true; }
if (data[pos] < searchedValue)
{ low = pos + 1; } // Look in first half
else
{ high = pos - 1; } // Look in second half
}
if (found = false)
System.out.println("False " + data[pos]);
else if (found = true)
System.out.println("True " + data[pos]);
}//end of keyTest
}

编辑:

我使用了一个 for 循环,现在我得到了我应该得到的 10 行。每行都返回“True 58”。我也试过在实际搜索中编辑语句,但我不确定是否有必要。

for (i = 0; i < data.length; i++)
{

while (low <= high && !found)
{
pos = (low + high) / 2; // Midpoint of the subsequence
if (data[pos] == searchedValue)
{ found = true; }
else { found = false;}
{ low = pos + 1; } // Look in first half
if (data[pos] == searchedValue)
{found = true;}
else { high = pos - 1; }// Look in second half
if (data[pos] == searchedValue)
{found = true;}
else { found = false;}

}

if (!found)
System.out.println("False " + data[pos]);
else
System.out.println("True " + data[pos]);

}//end of for

最佳答案

一个 = 是赋值(然后你测试赋值作为副作用)。你需要两个 == like

if (found == false) {
System.out.println("False " + data[pos]);
} else if (found == true) {
System.out.println("True " + data[pos]);
}

此外,我更喜欢较短的 boolean 值,而不是 ! 之类的

if (!found) {
System.out.println("False " + data[pos]);
} else {
System.out.println("True " + data[pos]);
}

关于java - 其他语句不打印。使用二进制搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29909419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com