【问题标题】:How to check three conditions in succession?如何连续检查三个条件?
【发布时间】:2023-02-04 20:00:07
【问题描述】:

enter image description here这是我的数据库的样子 ,

如果第一个广告块已加载 -> 停止检查并执行它 -> 如果第一个未加载 -> 检查第二个 -> 第二个已加载 -> 停止检查 -> 第二个未加载 ->检查第三个。

试图通过 Switch case 执行。仅执行第一个块。请帮我弄清楚问题是什么。

//Variable for changing ads
mDatabase = FirebaseDatabase.getInstance().getReference("Reklama");
mDatabase.addValueEventListener(new ValueEventListener() {
  @Override
  public void onDataChange(@NonNull DataSnapshot snapshot) {
    // Creating an ad targeting object.
    final AdRequest adRequest = new AdRequest.Builder().build();
    int Reklama = Math.toIntExact((Long) snapshot.getValue());
     if (Reklama == 1) {
                int hi = 1;
                switch (hi) {
                    case 1:
                        mInterstitialAd.loadAd(adRequest);
                        break;
                }
                if (hi != 1) {
                    int mid = 2;
                    switch (mid) {
                        case 2:
                            mInterstitialAdMid.loadAd(adRequest);
                            break;
                    }
                    if (mid != 2 || hi != 1) {
                        int low = 3;
                        switch (low) {
                            case 3:
                                mInterstitialAdLow.loadAd(adRequest);
                                break;
                        }
                    }
                }
            }
            else if (Reklama == 2) {
                int hi = 1;
                switch (hi) {
                    case 1:
                        mRewardedAd.loadAd(adRequest);
                        break;
                }
                if (hi != 1) {
                    int mid = 2;
                    switch (mid) {
                        case 2:
                            mRewardedAdMid.loadAd(adRequest);
                            break;
                    }
                    if (mid != 2 || hi != 1) {
                        int low = 3;
                        switch (low) {
                            case 3:
                                mRewardedAdLow.loadAd(adRequest);
                                break;
                        }
                    }
                }
            }
        }
  @Override
  public void onCancelled(@NonNull DatabaseError error) {
  }
});

【问题讨论】:

  • 你好,你需要清理这里。这是真正的代码吗? Pozdrav iz Srbije。
  • 请阅读如何使用switch
  • 这看起来像Java?
  • Andy,使用Java语言

标签: javascript


【解决方案1】:

如果您的情况是连续的,例如 1、2、3。您可以执行以下操作,而不是编写 switch case。

  • 假设您的值为 2

    常量值 = 2;

  • 创建一个如下所示的循环

    for(let i=1;i<4;i++){
     if(val === 0) break;
     if(i === val) {
       // if ad is found then execute the ad and stop the loop.
       // ex - if val is 1 then ad 2 and 3 wont be processed.
       loadAd(params);
       break;
     }
    }
    

使用这种方法,您可以添加的 switch case 数量不受限制。如果将来您需要检查 5 个广告,那么您只需增加循环中的数量。

此外,这将按顺序检查广告。将从 1 开始,以您提供的任何数字结束。

请在下面找到实现。

mDatabase = FirebaseDatabase.getInstance().getReference("Reklama");
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
  // Creating an ad targeting object.
  final AdRequest adRequest = new AdRequest.Builder().build();
  int Reklama = Math.toIntExact((Long) snapshot.getValue());
  for(let i=1;i<4;i++){
     if(Reklama === 0) break;
     if(i === Reklama) {
       // if ad is found then execute the ad and stop the loop.
       // ex - if val is 1 then ad 2 and 3 won't be processed.
       mInterstitialAdMid.loadAd(adRequest);
       break;
     }
   }
}
@Override
public void onCancelled(@NonNull DatabaseError error) {}
});

【讨论】:

    猜你喜欢
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多