一、for循环
for循环语法:
for(①循环初始化;②循环条件;④循环变化 ){
③循环体
}
for 循环的执行顺序:
true 循环体 循环变化 循环结束条件........
循环初始化 ---> 循环结束条件
false 结束循环
需求:输出100遍我喜欢java
需求:输出1-100所有的奇数
需求:输出a-z
需求:求1-100的和
//需求:输出100遍我喜欢java
for(int i = 1;i <= 100; i++){
System.out.println("我喜欢java"+i);
}
//需求:输出1-100所有的奇数
for(int i = 1; i < 101; i++){
if(i % 2 != 0){
System.out.println(i);
}
}
for(int i = 1; i < 101; i=i+2){
System.out.println(i);
}
//需求:输出a-z
for(char i = 'a' ; i <= 'z' ; i++){
System.out.println(i);
}
//需求:求1-100的和 1+2+3+4...
int sum = 0;
for(int i = 1 ; i <= 100 ; i++){
//i = 1;
//i = 2;
sum = sum + i;
}
System.out.println(sum);
二、While循环
while循环语法:
while(①循环条件 ){
②循环体
}
while执行顺序:
true 循环体 循环条件......
循环条件
false 结束循环
1、打印100遍我喜欢MySQL
2、求得一个数是几位数?
//1、打印100遍我喜欢MySQL
int i = 1;
while(i <= 100){
System.out.println("我喜欢MySQL"+i);
i++;
}
//2、求1~100的和
int i = 1;
int sum = 0;
while(i < 101){
sum = sum + i;
i++;
}
System.out.println(sum);
//3、求得一个数是几位数? 分析:将这个数循环除以10记录运算了几次
int num = 12345;
int temp = num;
if(num == 0){
System.out.println(num+"是1位数");
}else{
//定义一个变量用于保存循环的次数
int count = 0;
while(num != 0){
//将这个数循环除以10
num = num / 10;
//每次循环次数+1
count++;
}
System.out.println(temp+"是"+count+"位数");
}
三、do while循环
do..while 循环语法:
do{
循环体
}while(循环条件);
do..while 执行顺序
true 循环体 循环条件....
循环体 循环条件
false 结束循环
案例:打印100遍我喜欢编程
案例:学生根据老师的评语,是否继续敲代码,直到测评为ok,就结束
//案例:打印100遍我喜欢编程
int i = 1;
do{
System.out.println("我喜欢编程");
i++;
}while(i <= 100);
//案例:学生根据老师的评语,是否继续敲代码,直到测评为ok,就结束
Scanner sc = new Scanner(System.in);
String result;
do{
System.out.println("敲代码ing...你看我的代码怎么样???");
System.out.println("评价:");
result = sc.next();
}while(!result.equals("ok"));
四、break和continue关键字
break 表示结束当前循环
continue 表示结束本次循环,继续下一次循环
注意:紧跟着break和continue后面不能写任何代码
案例:从1加到100,输出和大于888的那个数
案例:输出100以内,所有的不是3的倍数
综合案例:将输入的内容,进行输出,如果输入886,结束聊天。如果输入敏感词汇,不输出显示
//案例:从1加到100,输出和大于888的那个数
//定义变量保存总和
int sum = 0;
for(int i = 1; i <= 100; i++){
sum = sum + i;
if(sum > 888){
System.out.println(i);
break; //表示结束当前循环
//System.out.println("能执行吗??"); //编译报错
}
//System.out.println("能执行吗??"); 可以写
}
//案例:输出100以内,所有的不是3的倍数
for(int i = 1; i <= 100 ; i++){
if(i % 3 == 0){
continue;//结束本次循环继续下次循环
}
System.out.println(i);
}
//综合案例:将输入的内容,进行输出,如果输入886,结束聊天。如果输入敏感词汇,不输出显示
Scanner sc = new Scanner(System.in);
while(true){
String word = sc.next();
if(word.equals("886")){
break;
}
if(word.equals("WC")||word.equals("SB")){
System.out.println("***");
continue;
}
System.out.println(word);
}
Scanner sc = new Scanner(System.in);
for(;;){
String word = sc.next();
if(word.equals("886")){
break;
}
if(word.equals("WC")||word.equals("SB")){
System.out.println("***");
continue;
}
System.out.println(word);
}
五、嵌套循环
需求1:打印5**5的矩形(用 * 表示)
for(int i = 1 ; i <= 5 ;i++){ //控制行
for(int j = 1 ; j <= 5 ; j++){//控制列
System.out.print("*");
}
System.out.println();
}
需求2:打印三角形1
for(int i = 1; i <= 5; i++){
for(int j = 1; j <= i;j++){
System.out.print("*");
}
System.out.println();
}
需求3:打印三角形2
for(int i = 1; i <= 5; i++){
for(int j = 1 ; j <= 6 - i ; j++){
System.out.print("*");
}
System.out.println();
}
需求4:打印三角形3
for(int i = 1; i <= 5; i++){
for(int j = 1; j < 6-i ; j++){
System.out.print(" ");
}
for(int j = 1; j <= i ; j++){
System.out.print("*");
}
System.out.println();
}
需求5:打印三角形4
for(int i = 1; i <= 5; i++){
for(int j = 1; j < i ;j++){
System.out.print(" ");
}
for(int j = 1; j <= 6-i; j++){
System.out.print("*");
}
System.out.println();
}
需求6:打印等腰三角形
for(int i = 1; i <= 5 ;i++){
for(int j = 1; j < 6-i ; j++){
System.out.print(" ");
}
for(int j = 1; j <= 2*i-1; j++){
System.out.print("*");
}
System.out.println();
}
需求7:打印空心矩形
for(int i = 1;i <= 5; i++){
for(int j = 1 ; j <= 5 ; j++){
if(i==1 || i==5 || j==1 || j==5){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
案例8:九九乘法表
for(int i=1; i<=9 ; i++){
for(int j = 1 ; j<=i ;j++){ //
System.out.print(j+"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
案例9:今有鸡兔同笼,上有35个头,下有94足,问鸡兔各几只?编写程序解决这个问题。
for(int i = 0 ; i <= 35 ;i++){ //表示鸡的数量
for(int j = 0 ; j <= 35 ; j++){ //表示兔子数量
if(i+j==35 && 2*i+4*j == 94){
System.out.println("鸡的数量为:"+i+"兔子数量为:"+j);
}
}
}
//优化:
for(int i = 0 ; i <= 35 ;i++){ //表示鸡的数量
if(i*2 + (35-i)*4 == 94){
System.out.println("鸡的数量为:"+i+"兔子数量为:"+(35-i));
}
}