package javaPackage;
import java.util.Scanner;
public class EmployeeTest {
public static void main(String[] args)
{
Scanner imput = new Scanner(System.in);
int test1Score;
int test2Score;
System.out.print("Enter first test score:");
test1Score = imput.nextInt();
System.out.print("Enter second test score:");
test2Score = imput.nextInt();
if((test1Score > 90) && (test2Score > 90))
{
System.out.println("\nYou are promoted to manager");
}
else if((test1Score > 90) || (test2Score >90))
{
System.out.println("\nYou are promoted to supervisor");
}
else if(!(test1Score>90))
{
System.out.println("\nYou are not promoted");
}
}
}
一切似乎都有效。然而,在第二个if if语句中,如果我输入89作为第一个测试分数,我得到第一个if的输出if。我应该告诉我“你没有晋升”。它似乎只检查其他是否与逻辑OR。 我刚刚学习java。我一定不能看到什么。
答案 0 :(得分:1)
您的逻辑取决于两个变量的值。您在问题描述中只提供了一个,因此我假设第二个不符合AND
语句的条件。
对于第一个导致TRUE的条件,两个值都必须超过90.
答案 1 :(得分:0)
谢谢,似乎逻辑没有意义。我正在练习一本名为“My First in Java”的书中的例子。看来这本书编写得不是很好。 我将第二个if语句改为:
否则if(test1Score< 90&& test2Score< 90){ System.out.println(“\ n你不升职”);
答案 2 :(得分:0)
从你的代码我认为它应该打印 1."你晋升为经理"只有当两个测试分数都大于90时 2."你晋升为主管"如果两个测试分数中的任何一个大于90 3."你没有晋升"如果两个考试成绩都低于91
所以你只需要包含' test2Score'如果条件如下所示,在你的第二个其他地方。
if((test1Score > 90) && (test2Score > 90))
{
System.out.println("\nYou are promoted to manager");
}
else if((test1Score > 90) || (test2Score >90))
{
System.out.println("\nYou are promoted to supervisor");
}
else //((test1Score <= 90) && (test2Score <= 90))
{
System.out.println("\nYou are not promoted");
}
但如果你想打印&#34;你没有被提升&#34;当test1Score&lt; = 90而不管test2Score时,你必须相应地修改你的if条件。
答案 3 :(得分:0)
问题是,如果州政府有逻辑错误,则第二个。 &gt; 90应该&lt; 90.否则,该陈述是多余的。但是考虑将第二个if else只是一个else来简化和处理所有其他可能的排列。不要在这里挑选,但是当代码变得更复杂时,找到这些东西会变得更加困难。希望这有助于编码。