我正在做这个小程序,但是不幸的是我遇到了这个问题。

  if (ccnString.charAt(0) != '4' || ccnString.charAt(0) != '3') {
      System.out.println("The String entered does not fit any of the Credit card standards");
      System.exit(0);
  }


我的程序无法识别我是否在String中放入任何整数。

但是,如果删除我的||最后一部分,if语句可识别第一个整数。

我在这里想念什么?

最佳答案

if (ccnString.charAt(0) != '4' || ccnString.charAt(0) != '3')


始终为true

每个字符都是!= '4'!= '3'

我猜您想改为&&

细节:

如果A为true或B为true(或两者都为true),则语句A || B为true。

在您的示例中,假设第一个字符为“ 4”。

A = ccnString.charAt(0) != '4'为假(4!= 4为假)

B = ccnString.charAt(0) != '3'为true(3!= 4为true)

所以A || B是真的,因为B是真的。

10-07 20:40