麻烦这个if语句

时间:2016-09-21 03:15:37

标签: java if-statement conditional

我使用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);

有人可以告诉我我做错了什么以及如何解决这个问题?拜托,谢谢!

2 个答案:

答案 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()