为了账号安全,请及时绑定邮箱和手机立即绑定

Java中逻辑运算符的使用方法

Java中逻辑运算符的使用方法

海绵宝宝撒 2023-09-27 10:32:50
java中如何使用java中的逻辑运算符计算以下代码?public class ApaBoleh{  public static void main(String[]args){      for(int i=1;i<=100;i++){          if(i%3==0){              System.out.print("Apa,");          }else if (i%5==0){              System.out.print("Boleh,");          }else if ((i%3==0)&&(i%5==0)){              System.out.print("ApaBoleh,");          }         System.out.print(i+",");      }  }}当我运行此代码时,以下行不会运行 }else if ((i%3==0)&&(i%5==0)){。
查看完整描述

4 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

跑步前

else if ((i%3==0)&&(i%5==0)){ System.out.print("ApaBoleh,");}

它运行

if(i%3==0){
    System.out.print("Apa,");
}else if (i%5==0){
    System.out.print("Boleh,");

所以你必须把

else if ((i%3==0)&&(i%5==0)){ System.out.print("ApaBoleh,");}

在上面两个之前


查看完整回答
反对 回复 2023-09-27
?
HUX布斯

TA贡献1876条经验 获得超6个赞

你有一个前面的两个else都是; 仅输入第一个。我会将测试保存到局部变量中,因为重复所有这些模数运算并不是很干净。喜欢,iftrue


for (int i = 1; i <= 100; i++) {

    boolean mod3 = i % 3 == 0, mod5 = i % 5 == 0;

    if (mod3 && mod5) {

        System.out.print("ApaBoleh,");

    } else if (mod3) {

        System.out.print("Apa,");

    } else if (mod5) {

        System.out.print("Boleh,");

    }

    System.out.print(i + ",");

}


查看完整回答
反对 回复 2023-09-27
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

这是因为您用来else排除该条件之前解析为 true 的任何内容。首先尝试检查最独特的情况:


if (( i%3 == 0 ) && ( i%5 == 0 )){

    System.out.print("ApaBoleh,");

}else if ( i%3 == 0){

    System.out.print("Apa,");

}else if ( i%5 == 0){

    System.out.print("Boleh,");

}


System.out.print(i+",");


查看完整回答
反对 回复 2023-09-27
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

当然它不会运行,当你的前两个 if 条件之一评估为 时true,你将永远不会到达该 if 块。


例如,如果i = 3那么您的第一个条件if(i%3==0)将计算为true并且您的打印输出Apa,因为其余条件是else ifjava代码将停止处理并进入下一个循环迭代。类似地,如果i = 5那么第一个条件将计算为false,第二个条件if(i%5==0)将计算为true并且不会继续到下一个条件else if


因此,如果您之前的任何一个条件评估为,true您将不会达到第三个条件。


除此之外,如果您必须删除前面的两个if语句并且仅按如下方式评估该条件:


public class ApaBoleh{

  public static void main(String[]args){

    for(int i=1;i<=100;i++){

      if ((i%3==0)&&(i%5==0)){

        System.out.print("ApaBoleh,");

      }

     System.out.print(i+",");

    }

  }

}

然后 ifi = 3它将计算为false因为它将计算i%3==0为true然后继续计算i%5==0为false(true和false= false)。


然后 ifi = 15它将计算为true因为它将计算i%3==0为true然后继续计算i%5==0为true(true和true= false)。


查看完整回答
反对 回复 2023-09-27
  • 4 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信