Java基础 3.20

1.while循环控制

循环变量初始化
while(循环条件) {
	循环语句;
	循环变量迭代;
}

示例代码

public class While01 {

	public static void main(String[] args){
		int i = 1;
		while(i <= 10) {
			System.out.println("logic" + i);
			i++;
		}
	}	
}
  • 循环条件是返回一个布尔值
  • 先判断再执行

相关练习

public class While01 {

	public static void main(String[] args){
		int i = 1;
		while ( i <= 100 ) {
			if ( i % 3 == 0 ) {
				System.out.println(i);
			}
			i++;
		}
	}	
}
public class While01 {

	public static void main(String[] args){
		int i = 40;
		while ( i <= 200 ) {
			if ( i % 2 == 0 ) {
				System.out.println(i);
			}
			i++;
		}
	}	
}

2.do-while循环

循环变量初始化;
do{
	循环语句;
	循环变量迭代;
} while ( 循环条件 );
  • do-while是关键字
  • 循环四要素一致,位置不同
  • 先执行后判断,至少会执行一次
  • 最后有一个分号

注意:i++应放在do循环的外面

示例

public class DoWhile {

	public static void main(String[] args){
		int i = 1;
		do {
			System.out.println("logic" + i);
			i++;
		} while ( i <= 10 );
	}	
}

练习

public class DoWhile {

	public static void main(String[] args){
		int start = 1;
		int end = 200;
		int i = start;
		int count = 0;
		int condition1 = 5;
		int condition2 = 3;
		do {
			if ( i % condition1 == 0 && i % condition2 != 0 ) {
				count++;
			} 
			i++;//注意i++应放在do循环的外面
		} while ( i <=  end);
		System.out.println(count);
	}	
}
import java.util.Scanner;

public class DoWhile {

	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		char answer = ' '; 
			do {
				System.out.println("老罗使用闪电五连鞭!");
				System.out.println("还不还钱?(y/n)");
				answer = myScanner.next().charAt(0);
			} while ( answer == 'n' );
		System.out.println("终于还钱了。");
	}	
}

3.多重循环控制(重点!难点!)

  • 将一个循环放在另一个循环体内,形成了嵌套循环。其中,for,while,do...while均可作为外层循环和内层循环(建议一般嵌套2层,最多嵌套3层,过多导致代码的可读性很差
  • 实际上,嵌套循环就是把内层循环当成外层循环的循环体 当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环
  • 设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n
public class DoWhile {

	public static void main(String[] args){
		for ( int i = 0; i < 2; i++ ) {
			for ( int j = 0; j < 3; j++ ) {
				System.out.println("i = " + i + " j = " + j);
                //输出6次 i = , j = ;
			}
		}
	}	
}

实例

//化繁为简
//每个班级5名学生
//输入一个班级的成绩
//求出一个班级的平均分
//输入所有班级的成绩
//求出每个班级的平均分
//求出所有班级的平均分
import java.util.Scanner;

public class MulFor01 {

	public static void main(String[] args) {
		Scanner myScanner = new Scanner(System.in);
		double totalScore = 0;//累积所有同学成绩
		int pass = 0;//累积及格人数
		for ( int j = 1; j <= 3; j++ ) { //j为班级
			double sum = 0;//一个班级的总分
			for ( int i = 1; i <= 5; i++ ) {
				System.out.println("请输入第" + j + "个班第" + i + "个同学的成绩");
				double score = myScanner.nextDouble();
				if ( score >= 60 ) {
					pass++;
				}
				sum += score;	
			} 
			System.out.println("sum = " + sum + "平均分 = " + (sum / 5));
			totalScore += sum;
		}
			System.out.println("totalScore = " + (totalScore / 15));
			System.out.println("pass = " + pass);
	}
}
//化繁为简
//打印1*1  
//打印1*9
//打印1*2 2*2
//打印全部
public class MulFor02 {

	public static void main(String[] args) {
		int result = 0;//定义j * i的值
		for ( int j = 1; j <= 9; j++ ) {
			for ( int i = 1; i <= j; i++ ) {
				result = i * j;
				System.out.print(i + " * " + j + " = " + result + "\t");
			}
		System.out.print("\n");
		}
	}
}

(这个九九乘法表花了二十分钟/(ㄒoㄒ)/~~哈哈哈哈,不过还好最后疯狂调试\t和\n的位置,终于给我写出最完美的了!!!我果然是天才哈哈哈(●'◡'●))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值