对于循环未执行

时间:2013-10-03 14:38:19

标签: java android

由于我的for循环没有执行,我遇到了问题。 这是我的代码:

public void sendSMS(){

    for(int t = 1; t == 5; t = t+1) {
        pp();   
    }
}

public void pp() {


    SmsManager smsManager = SmsManager.getDefault();

     phoneNo = "01234567890";
     message ="Sample msg from app";
     Toast.makeText(getApplicationContext(), "testing done", Toast.LENGTH_LONG).show();

     smsManager.sendTextMessage(phoneNo, null, message, null, null);
     Toast.makeText(getApplicationContext(), "dummy Message dumped!", 
                    Toast.LENGTH_LONG).show();


}

请帮忙。 Madiya

4 个答案:

答案 0 :(得分:11)

我不确定你的目的是什么,但这是你在循环中的问题

t == 5

它应该像

for(int t = 1; t <= 5; t = t+1) {

t永远不会在这里5,所以它永远不会迭代。此外,您可以简化最后一部分,使其看起来像

for(int t = 1; t <= 5; t++) {

如果你看Java docs for a for loop

  

for(初始化;终止;        增量) {       声明(S)   }

现在看一下终止表达的内容

  

当终止表达式的计算结果为false时,循环终止。

终止表达式从一开始就是false,意味着它不会运行。

答案 1 :(得分:2)

您的代码不会迭代。条件:t == 5只会扰乱整个迭代。它应该类似于t <= 5t < 5

答案 2 :(得分:1)

for循环的结构是(initialization, condition, afterthought)。您已将变量初始化为等于1:t=1 条件参数指出for循环何时运行,并且从t=1起,它不满足t==5条件,因此它不运行。

让你的for循环迭代五次,你会做t <= 5

答案 3 :(得分:0)

for循环有三件事你需要关注:

  1. 初始化
  2. 条件
  3. 更改变量的值(Increment,Decrement,Multiply ...)
  4. 在你的for循环中:

    for(int t = 1; t == 5; t = t+1) {
        pp();   
    }
    

    您已正确声明并初始化整数变量t。此外,增量声明可能根据您的要求而为真。问题在于条件。您已指定在for等于5时运行t循环。但最初,您已将t设置为1。因此,在检查t是否等于5之后,控件不会在for循环内输入代码。这就是它没有执行的原因。

    解决方案可能是:

    for(int t = 1; t <= 5; t = t+1) {
        pp();
    }