while:先判断后执行
do…while语句:先执行,后判断
public class Ex3_4{
public static void main (String args[]) {
long a,n,m=0;
a= Long.parseLong(JOptionPane.showInputDialog("输入整数"));
n=a;
while(a>0) {
m += a%10; //累加计算各位数字
a = a/10;
}
System.out.print(n+"的各位数字之和="+m);
}
}
int x=23659;
String m="result=";
while (x>0) {
m = m + x%10;
x = x/10;
}
System.out.println(m);
过程
(0) m=“result=”,x=23659
开始循环
(1) m=“result=9”,x=2365
(2) m=“result=95”,x=236
(3) m=“result=956”,x=23
(4) m=“result=9563”,x=2
(5) m=“result=95632”,x=0
结束循环
运行结果:
result=95632
for语句:
【说明】
(1)初始化、循环条件以及迭代部分都可以为空语句(但分号不能省),三者均为空的时候,相当于一个无限循环。
for (;;) System.out.println(“hello”);
例如,求长整数的各位数字之和改用for循环
long a,n,m=0;
n=a= Long.parseLong(JOptionPane.showInputDialog(“输入整数”));
for ( ; a>0; a = a/10) {
m += a%10; //累加计算各位数字
}
System.out.print(n+”的各位数字之和=”+m);
(2)在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。所谓逗号语句是用逗号分隔的语句序列。
例如:
for( int i=0, j=10; i
}
运行结果:
0,10
1,9
2,8
3,7
4,6
import javax.swing.*;
public class Ex3_7 {
public static void main(String args[]){
int score = 0;
for (int i=0;i<10;i++) {
int a = 10 + (int)(90*Math.random());
int b = 10 + (int)(90*Math.random());
String s=JOptionPane.showInputDialog(a+"+"+b+"=? ");
int ans = Integer.parseInt(s);
if (a + b == ans)
score = score + 10 ; //每道题10分
}
JOptionPane.showMessageDialog(null, "your score= "+score);
}
}
产生[a,b]随机整数: a+(int)(Math.random()*(b-a+1))