今天学习了循环语句的用法,知道了三种循环语句的应用场合和使用特点
循环结构
循环就是重复做某一件事情。在Java程序中,循环控制即在某一情况下,控制程序重复执行某一条或多。
条语句,直到遇到终止条件为止循环语句也称迭代语句,在Java语言中存在的while、for和do-while循环语句。
while循环
while是Java中最基本的循环语句,满足条件才执行循环体,如果不满足条件则不执行。所以有可能循环体一次都不执行。
语法格式: while (继续循环的条件) { 循环所执行的代码; }
public class Test3 {
public static void main(String[] args) {
int res = 0;// 累加器
int k = 1;// 用于控制循环次数
while (k <= 100) {
res += k++;//这里等价于res=res+k;k++;
}
System.out.println("1+2+3+...+100=" + res);
}
}
用while循环接收用户输入小明的成绩,如果用户输入不合法就反复输入,直到正确为止
public class Test3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int score = -1;
while (score < 0 || score > 100) {
System.out.println("请输入小明成绩:");
String ss = sc.nextLine();
try {
score = Integer.parseInt(ss);
if (score < 0 || score > 100) {
System.out.println("要求成绩值应该0-100之间");
}
} catch (Exception e) {
System.out.println("请输入合法的整数成绩值");
}
}
System.out.println("小明的成绩为:" + score);
}
}
do-while循环
for 循环主要用于按预定的次数执行语句或语句块
语法: for(语句1,一般用于初始化循环控制变量; 语句2,是循环继续执行的条件; 语句3,是每次循
环执行结束后必须执行的语句){ 循环体语句; }
样例:计算1+2+3+…+100=?
public class Test6 {
public static void main(String[] args) {
int res = 0;
for (int k = 1; k <= 100; k++)
res += k;
// System.out.println(k); 報錯:变量k是在表达式1上声明的,只能在for循环内部有
效
System.out.println("1+2+3+...+100=" + res);
}
}
三种循环的选择
1、如果不能提前预知循环次数,则使用while或者do/while循环,而for循环一般用在可提前预知循环次数的场景下
2、while循环可以出现一次都不执行的情况,但是do/while循环无论如何循环体都会被执行一次
需求:输出九九乘法表
public class Test7 {
public static void main(String[] args) {
for(int i=1;i<=9;i++) {
//控制行数
for(int k=1;k<=i;k++) {
//控制每行的列数
System.out.print(k+"*"+i+"="+(i*k)+"\t");
}
System.out.println();
}
}
}
循环中使用的跳转语句
Java提供了三种跳转语句:break、continue以及return,用来强制转移程序执行的顺序
break
break语句除了与switch结合使用外,还用来强制中断当前的循环,不再执行循环体中break后面的语句
而退出循环。譬如在后续将学到从数据库里循环取出数据,用来验证用户的用户名是否正确。如果当用
户名符合某一条数据时,就需要用到break语句来结束当前的循环验证
continue
continue语句的功能是,在循环语句中,当碰到continue时,将不再执行循环体continue之后的语句,
而重新判断循环控制的条件,继续循环,直到循环条件的值为假时退出循环
例题: 100 ~ 50000之间有多少整数,其各位数字之和为5,分别是哪些数(例如整数1324的各位数字之和为 1+3+2+4 等于10(不为5)),并统计满足条件的整数有多少个
package problem;
public class testC {
public static void main(String[] args) {
int a,b,c,d,e;
int k = 0;
for (int i = 100;i<=50000;i++){
a = i/10000;
b = (i-a*10000)/1000;
c = (i-a*10000-b*1000)/100;
d = (i-a*10000-b*1000-c*100)/10;
e = (i-a*10000-b*1000-c*100-d*10);
if (a+b+c+d+e == 5){
System.out.println(i);
k++;
}
}
System.out.println("一共有"+k+"个数字符合条件");
}
}