Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java if-else语句中的死分支_Java_If Statement_Switch Statement_Case_Naming - Fatal编程技术网

Java if-else语句中的死分支

Java if-else语句中的死分支,java,if-statement,switch-statement,case,naming,Java,If Statement,Switch Statement,Case,Naming,我在写这段代码,给程序起一个名字 Java告诉我,如果变量“isacoolgay”为false,则在应该使用语句中的else时,永远不会使用它 if (isACoolGuy = true){ System.out.println("Thank you for this name... "+ name); }else if(isACoolGuy = false){ System.out.println("Okay im changing my nam

我在写这段代码,给程序起一个名字

Java告诉我,如果变量“isacoolgay”为false,则在应该使用语句中的else时,永远不会使用它

if (isACoolGuy = true){
        System.out.println("Thank you for this name... "+ name);
    }else if(isACoolGuy = false){    
        System.out.println("Okay im changing my name since you are an idiot");
        name = name = "jack";
        System.out.println("My name is "+ name + " now");
前面有一个switch语句,它应该将“isacoolgay”布尔值更改为false

case "name":
            System.out.println("You are an a******");
            isACoolGuy = false;
            break;

不是检查它是否为真,而是将isacoolgay赋值为真,因此它的计算结果总是为真

 if (isACoolGuy = true){
改用

 if (isACoolGuy == true){
更好地使用:-

if (isACoolGuy)
你的假设是错的

if (isACoolGuy == true){
        System.out.println("Thank you for this name... "+ name);
    }else if(isACoolGuy == false){
        System.out.println("Okay im changing my name since you are an idiot");
        name = "jack";
        System.out.println("My name is "+ name + " now");
或者更好

if (isACoolGuy){
        System.out.println("Thank you for this name... "+ name);
    }else if(!isACoolGuy){
        System.out.println("Okay im changing my name since you are an idiot");
        name =  "jack";
        System.out.println("My name is "+ name + " now");
在您的情况下,最正确的方法是跳过else if,用类似这样的单个else替换它

if (isACoolGuy){
        System.out.println("Thank you for this name... "+ name);
    }else {
        System.out.println("Okay im changing my name since you are an idiot");
        name =  "jack";
        System.out.println("My name is "+ name + " now");
还有一些理论

isACoolGuy=true表示为isACoolGuy变量指定真值。 在if中使用它总是返回true isACoolGuy==true检查变量isACoolGuy的值是否为true。 这是比较

在if中,您可以跳过比较布尔值,因为if具有以下格式

if(true)
{

}

因此,如果(isACoolGuy)与If(isACoolGuy==true)相似,则检查条件时应使用
=
而不是
=
它是用于赋值的,就像这样
如果(isACoolGuy==true)

尝试删除第二个条件
,如果(isacoolgay==false)
不是必需的,则使用关键字
else
就足够了,如下所示:

  isACoolGuy = true;  
  ...
  if (isACoolGuy){ // the positive control
    System.out.println("Thank you for this name... "+ name);
 }else{    // otherwise negative
    ...
  }

当您应该使用比较运算符时,您正在if条件中使用赋值运算符
=
。dnault的注释也适用于ELSEIFT这是(一个原因)您不应该将布尔值显式比较为true或false的原因。如果您使用了
If(isacoolgay)
else If(!isacoolgay)
,您就不会意外地创建问题。只需使用
else
,如果
If(isacoolgay)
测试失败,那么
!Isacoolgay
必须是真的。如果你要解决这个问题,你也应该解决elseif。1)
iif
;2)
if(isacoolgay){
会更好。(虽然我自己没有投票)我没有投反对票,但是
if(condition==true)
是一种糟糕的风格。只要使用
if(condition)
@Klitos Kyriacou我想是的,但是OP是这样写的谢谢你!我已经完全忘记了==vs=这件事。谢谢你为if And else给我带来很多麻烦的技巧和提示。