Java 为什么我不能使用do{}while();为了控制一个操作?
为什么我不能使用do{}while;为了控制一个操作?例如,我希望当x变量获得5值时,作为结果,我使用Toast类看到Finish消息。这个任务不是这个语法的责任吗Java 为什么我不能使用do{}while();为了控制一个操作?,java,android,Java,Android,为什么我不能使用do{}while;为了控制一个操作?例如,我希望当x变量获得5值时,作为结果,我使用Toast类看到Finish消息。这个任务不是这个语法的责任吗 do{ //Do some operations } while ( there were a condition ); 那么,为什么我不能使用do{}while;用于控制类似以下代码的操作 public class MainActivity extends Activity { TextView textVie
do{
//Do some operations
}
while ( there were a condition );
那么,为什么我不能使用do{}while;用于控制类似以下代码的操作
public class MainActivity extends Activity {
TextView textView;
RelativeLayout relativeLayout;
int x;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
relativeLayout = (RelativeLayout) findViewById(R.id.re);
textView = (TextView) findViewById(R.id.te);
do {
relativeLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
x += 1;
textView.setText(String.valueOf(x));
}
});
} while (x == 5);
Toast.makeText(getApplicationContext(), "Finish", Toast.LENGTH_SHORT)
.show();
}
}
在循环中,当x==5时,您正在添加click侦听器。这是不正确的。您需要添加一次
您不需要do while构造。只要在侦听器的onClick中使用x==5{x+=1;}即可实现所需的功能,您可以将其编写为:
public class MainActivity extends Activity {
TextView textView;
RelativeLayout relativeLayout;
int x;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
relativeLayout = (RelativeLayout) findViewById(R.id.re);
textView = (TextView) findViewById(R.id.te);
relativeLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
x += 1;
textView.setText(String.valueOf(x));
if(x == 5) {
Toast.makeText(getApplicationContext(), "Finish", Toast.LENGTH_SHORT).show();
}
}
});
}
}
此代码:
设置一次相对布局的单击侦听器
每次单击时递增x
如果单击5次,将显示一个带有文本Finish的祝酒词
代码的其他问题:
在查找相对布局和文本视图时,您似乎使用了R.id.re,这是不正确的,应该会导致异常请告诉我。。。您还应该注意,将循环设置为在UI线程上运行会导致UI线程被有效阻止,从而删除任何用户交互并使应用程序无用。仅在必要时运行while循环,如果需要UI交互,则在UI线程外部运行while循环。