我使用Java编写代码并使用TextPad编辑器。
我正在尝试编写设置" r"等于某个值取决于用户是男性还是女性。我已经要求用户输入" 1"如果他们是男性和" 2"如果他们是女性。
我把r设为双。 D和权重已由用户在代码中更早定义。
以下是我尝试使用的代码,它一直给我一个错误,说我没有定义" r"。
if (gender == 1)
r = 0.73D;
if (gender == 2)
r = 0.66D;
else
System.out.println("Please enter 1 or 2 for male or female.");
alcoholAbsored = (3.701*D)/(weight*r);
所有代码都会编译,直到我得到alcoholAbsorbed的公式,然后告诉我r未定义。从技术上讲,编译时if / else语句没有问题,但是当我尝试使用r时会出现问题。我现在最终使用这个代码,但这不是我想要的,因为如果用户放置1或2以外的东西怎么办?
if (gender == 1)
r = 0.73D;
else
r = 0.66D;
alcohol absorbed = (3.701*D)/(weight*r);
有人可以告诉我我做错了什么以及如何解决这个问题?拜托,谢谢!
答案 0 :(得分:1)
您的代码的问题在于,在第一个版本中,如果它转到else块(即使用户输入了1也是如此),那么r
将不会被初始化,因此在下一行它找不到任何价值。正确的代码是这样的:
if (gender == 1)
r = 0.73D;
else if (gender == 2)
r = 0.66D;
else {
r = -1D;
System.out.println("Please enter 1 or 2 for male or female.");
}
if ( r != -1D)
alcoholAbsored = (3.701*D)/(weight*r);
或者:
if (gender == 1 || gender == 2){
if (gender == 1)
r = 0.73D;
else
r = 0.66D;
alcoholAbsored = (3.701*D)/(weight*r);
}
else
System.out.println("Please enter 1 or 2 for male or female.");
答案 1 :(得分:1)
最好像这样编码
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
ints = "012345679"
def custom_ec(driver):
''' Custom expected condition function to feed wait.until
'''
elem_text = driver.find_element_by_id("viewed").text
# Test to see if all of the values are ints
if all(map(lambda x: x in ints, elem_text)):
# If all of the char in the span are ints, return the value as an int
return int(elem_text)
else:
return False
driver = webdriver.Chrome()
try:
driver.get("http://your.url/here")
int_value = WebDriverWait(driver, 30).until(custom_ec)
finally:
driver.quit()