一个循环可以执行多少次,不由开始值与结束值控制,而是由控制循环的循环变量可以取的值控制。
for循环
基础语法
for(开始条件;循环条件;更改条件){
循环体;
}
嵌套for循环
for(){//外层循环
for(){
//内层循环
}
}
外层循环执行一轮,内层循环执行n次,外层循环为轮数,内层循环是每一轮的次数
99乘法表
package cn.tedu.basic;
public class TestFor99Excel {
public static void main(String[] args) {
for(int i = 1;i < 10;i++) {
for(int j = 1;j <= i;j++) {
System.out.print(j + "*" + i + "=" + i*j + "\t");
}
System.out.println();
}
}
}
for循环案例
打印0到10/打印10到0/打印8,88,888,8888,
package cn.tedu.basic;
public class TestFor {
public static void main(String[] args) {
for(int i=0 ; i <= 10 ; i++) {
System.out.print(i + " ");
}
System.out.println();
for(int a = 10 ; a > 0 ; a--) {
System.out.print(a + " ");
}
System.out.println();
for(int j = 8 ; j <= 8888 ; j = j*10+8) {
System.out.print(j + ",");
}
}
}
求[1,100]以内元素之和,偶数之和,偶数个数
package cn.tedu.basic;
public class TestHomework {
public static void main(String[] args) {
//1-100元素和
int sum = 0;
for(int i = 1 ; i <= 100 ; i++) {
sum += i;
}
System.out.println("1-100元素和为:" + sum);
//1-100偶数和
int sum1 = 0;
for(int j = 1 ; j < 101 ; j++) {
if(j % 2 ==0) {
sum1 += j;
}
}
System.out.println("1-100的偶数和为:" + sum1);
//1-100的偶数个数
int num = 0;
for(int k = 1 ; k<101 ; k++) {
if(k % 2 ==0) {
num++;
}
}
System.out.println("1-100的偶数个数为:" + num);
}
}
while与do ··· while循环
语法结构
while的语法结构
while(执行条件){
循环体;
}
do ··· while语法结构
do{
循环体;
}while(执行条件);
案例
猜拳小游戏while循环
package cn.tedu.basic;
import java.util.Random;
import java.util.Scanner;
/**
*用于练习while循环
*生成一个随机数,让用户去猜
*/
public class TestWhile {
public static void main(String[] args) {
int random = new Random().nextInt(101);
while(true) {
System.out.print("请输入你要猜的数:");
int num = new Scanner(System.in).nextInt();
if(num == random) {
System.out.println("恭喜你!猜对了。");
break;
}else if(num >= random) {
System.out.println("猜大了");
continue;
}else if(num <= random) {
System.out.println("猜小了");
continue;
}
}
}
}
猜拳小游戏do-while循环
package cn.tedu.basic;
import java.util.Random;
import java.util.Scanner;
/**
* do-while结构练习
*/
public class TestDoWhile {
public static void main(String[] args) {
int random = new Random().nextInt(101);
do {
System.out.print("请输入要猜的数字:");
int input = new Scanner(System.in).nextInt();
if(input > random) {
System.out.println("猜大了。");
continue;
}else if(input < random) {
System.out.println("猜小了。");
continue;
}else if(input == random){
System.out.println("猜对了!");
break;
}
}while(true);
}
}
break与continue
break
break: 直接结束当前循环,跳出循环体
break以后的循环体中的语句不会继续执行,循环体外的会执行
注意:如果是嵌套for循环,在内层循环遇到了break,只会跳出当前这一层内循环
continue
continue: 跳出本轮循环,继续下一轮循环
continue后本轮循环体中的语句不会继续执行,但是会继续执行下轮循环,循环体外的也会执行
案例
package cn.tedu.basic;
import java.util.Scanner;
/**
* 测试break与continue
*/
public class TestBreakAndContinue {
public static void main(String[] args) {
for(int i = 1;i < 101;i++) {
System.out.print("请输入您要猜的整数:");
int input = new Scanner(System.in).nextInt();
if(input != 88) {
continue;
}
/*
* continue并不是用来控制多次输入的,而是控制当输入的数据不对,可以跳过后面的判断语句,直接进行下一轮的输入要求
* break与 continue之后都不允许写代码,都是不可到达的代码
*/
if(input == 88) {
System.out.println("恭喜你,猜对了");
break;
}
}
}
}
三种循环的区别
- for:知道循环次数
- while/do while:当循环次数不确定时
- while:先判断,不符合规则,不执行代码
- do while:代码最少被执行一次,再去判断,符合规则,再次执行代码
- 循环之间都可以互相替代,但是一般最好选择合适的循环结构完成代码