我是第一年的程序员。
我一直在尝试使用输入搜索存储了四个变量的数组。
我发现的所有示例都使用int,并在列表中搜索数字。
我的程序必须搜索字母和数字的组合。 (例如COP 2800)
courseInfo.java:22: error: cannot find symbol
System.out.println(linearSearch(list, courseInput));
^
symbol: variable courseInput
location: class courseInfo
1 error
请使用非专业人士的条款,我只在这堂课中待了三个星期。
如果我从第21行删除COP,PSY,EVR和COP,我会返回不同的错误;
var originalTabs = $('.originalTabs').html();
function clearTabs() {
$('.originalTabs').html(originalTabs);
}
//clearTabs();
//desktopTabs();
function desktopTabs() {
clearTabs();
// cretate tabs for desktop
var headers = $("#tab_description h6");
$('#tab_description h6').each(function(i) {
$(this).nextUntil("h6").andSelf().wrapAll('<div class="tab" id="tab-' + i + '"/>');
});
for (var i = 0; i < headers.length; i++) {
$('.tabs').append('<li class=""><a href="#tab-' + i + '">' + headers[i].innerHTML + '</a></li>');
}
$('ul.tabs').each(function() {
var active, content, links = $(this).find('a');
var listitem = $(this).find('li');
active = listitem.first().addClass('active');
content = $(active.attr('href'));
$('.tab').hide();
$(this).find('a').click(function(e) {
$('.tab').hide();
$('ul.tabs li').removeClass('active');
content.hide();
active = $(this);
content = $($(this).attr('href'));
active.parent().addClass('active');
content.show();
return false;
});
});
headers.remove(); // remove headers from description
$('#tab-0').show(); // show the first tab
}
function mobileTabs() {
clearTabs();
//alert("loaded mobile");
var headers = $("#tab_description h6");
$(headers).each(function(i) {
$(this).append('<a href="#accordion_' + (i + 1) + '" id="accordion_' + (i + 1) + '"></a>');
//$(this).nextUntil("h6").andSelf().wrapAll('<div class="aTab" id="tab-'+i+'"/>');
$(this).on('click', function() {
tabClick($(this));
});
});
$('#tab_description h6').first().trigger('click').addClass("active");
$('#tab_description h6').first().nextUntil("h6").show();
}
var tabClick = function(x) {
//alert("clicked");
var accordionContent = $('#tab_description p, #tab_description ul, #tab_description table, #tab_description div');
$('#tab_description h6').removeClass("active");
if (!$(x).hasClass("active")) {
$(x).addClass("active");
}
// Check if current accordion item is open
var isOpen = $(x).next().is(":visible");
// Hide all accordion items
accordionContent.hide();
// Open accordion item if previously closed
if (!isOpen) {
x.nextUntil('h6').show();
x.nextUntil(accordionContent).show();
}
// Disabled to stop on mobile auto scrolling down to product description when clicking through...
//$('html, body').animate({
// scrollTop: $(x).offset().top - 15
//}, 2000);
//return false;
}
//bind to resize
$(window).resize(function() {
if (isMobileLandscapeOnly.matches || isTabletLandscapeOnly.matches) {
desktopTabs();
$('#tab_description h6').on("click, touchstart", tabClick);
} else if (isMobilePortraitOnly.matches || isTabletPortraitOnly.matches) {
mobileTabs();
$('#tab_description h6').on("click, touchstart", tabClick);
} else if (isDesktop) {
desktopTabs();
}
});
//check for the orientation event and bind accordingly
window.addEventListener("orientationchange", function() {
if (isMobileLandscapeOnly.matches || isTabletLandscapeOnly.matches) {
desktopTabs();
$('#tab_description h6').on("click, touchstart", tabClick);
} else if (isMobilePortraitOnly.matches || isTabletPortraitOnly.matches) {
mobileTabs();
$('#tab_description h6').on("click, touchstart", tabClick);
} else if (isDesktop) {
desktopTabs();
}
}, false);
if (isMobileLandscapeOnly.matches || isTabletLandscapeOnly.matches) {
//alert("Mobile / Tablet (Portrait)");
desktopTabs();
$('#tab_description h6').on("click, touchstart", tabClick);
//console.log(originalTabs);
} else if (isMobilePortraitOnly.matches || isTabletPortraitOnly.matches) {
//alert("Mobile / Tablet (Portrait)");
mobileTabs();
$('#tab_description h6').on("click, touchstart", tabClick);
} else if (isDesktop) {
//alert("Desktop");
desktopTabs();
}
});
答案 0 :(得分:0)
您正在使用一个应该是int的courseInput检查String值的equals条件。
此外,对于if条件中发生的任何情况,您将返回-1。如果key的值不等于列表中的值,你应该返回-1吗?
此外,courseInput变量是方法的本地变量。通过在类中将其声明为成员变量来使其成为全局变量。
答案 1 :(得分:0)
你有double courseInput = input.nextDouble()
,它只接受双打,而不是字符。你还有int[] list
,它是一个整数数组,所以它也不能容纳字符。如果将整个课程名称(字母和数字)放入字符串中,您将获得更好的运气。然后,您可以扫描整行并将其存储在一个字符串数组中。
答案 2 :(得分:0)
我建议您在尝试之前对Java的基本数据类型做一些更多的工作。 Java是一种相当strictly typed的语言,这意味着一般情况下(有很多例外),您需要提前确定变量中存储的值的类型。您在代码中混合了许多类型:整数,双精度和字符串。
首先,确定课程的标识符是否是一个名称的编号。如果它是一个数字,您可以使用int
来存储它。如果它是一个名称,您可以使用String
。您注意到主题包括字母和数字。但只要您不需要直接比较数字,就可以将整个标识符存储在String
中。没有必要拆分它们。
新启动器的另一个常见陷阱是原始类型(例如int
)的行为与对象(例如String
)完全不同。直接的区别在于==
的含义。对于基本类型,它比较值,而对于对象,它检查左侧和右侧是否指向同一对象。
我怀疑您希望通过名称识别您的主题(即String
)。在这种情况下,您的代码可能类似于:
String[] subjects = {"COP2800", "PSY1012", "EVR2001"};
和
for (int i = 0; i < subjects.length; i++) {
if (subjects[i].equals(name))
return i;
}
return -1;