贝贝有练:for与while循环需掌握的四个程序

第一题:循环练习之求1-100之间的偶数和

  1. 定义求和变量

  2. 通过for循环获取到1-100之间所有的数
    判断当前的元素是否是偶数, 是的话, 累加

  3. 输出最终结果

     public static void main(String[] args) {
     	// 1. 定义求和变量,用于数据的累加
     	int sum = 0;
     	
     	// 2. 通过循环,获取到1-100之间的每一个数值
     	for(int i = 1; i <= 100; i++){
     		// 3. 判断当前的数值,是否是偶数
     		if(i % 2 == 0){
     			sum += i;
     		}
     	}
     	
     	System.out.println("sum=" + sum);
     	
     }
    
    
     public static void main(String[] args) {
     	int sum = 0;
     	
     	for(int i = 2; i <= 100; i+=2){
     		sum += i;
     	}
     	
     	System.out.println(sum);
     }
    

第二题:for循环练习之统计水仙花的个数

统计思想, 计数器思想

public class Test1 {
	/*
	 * 需求:求所有的水仙花数的个数
	 * 
	 * 	水仙花数是一个三位数, 其每一位的立方和相加的结果还等于该数本身
		例如 153 --> 3 * 3 * 3 + 5 * 5 * 5 + 1 * 1 * 1 = 153
	 */
	public static void main(String[] args) {
		// 定义计数器变量
		int count = 0;
		
		// 1. for循环找出所有的3位数, 100-999
		for(int i = 100; i <= 999; i++){
			// 2. 获取数值的每一位
			int ge = i % 10;
			int shi = i / 10 % 10;
			int bai = i / 100;
			// 3. 判断是否是水仙花数
			if((ge * ge * ge + shi * shi * shi + bai * bai * bai) == i){
				System.out.println(i);
				// 4. 满足条件,计数器增长
				count++;
			}
		}
		
		System.out.println("水仙花数的个数为:" + count);
	}
}

第三题
public class TestPrint99 {
/*
*
* 1 * 1 = 1
* 1 * 2 = 2 2 * 2 = 4
* 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
*
* 左侧:从1一直增长到最大的 j
* 右侧:在一行当中是不变的 i
*
/
public static void main(String[] args) {
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();
}
}
}
第四题:
Random练习之猜数字小游戏案例

  • 需求: 系统产生一个1-100之间的随机数,请猜出这个数据是多少。
  • 案例演示
练习: 
	7分钟时间

	// 1. 创建Random对象用于生成随机数
	Random r = new Random();
	int num = r.nextInt(100) + 1;
	
	// 2. 创建键盘录入对象, 用于实现用户的交互
	Scanner sc = new Scanner(System.in);
	
	// 3. 定义无限循环,不断的接受键盘录入的数据
	while(true){
		System.out.println("请输入您要猜的数:");
		int content = sc.nextInt();
		// 4. 拿着用户输入的数据跟心里想的数据进行比较, 然后给予提示
		if(content > num){
			System.out.println("大了");
		}else if(content < num){
			System.out.println("小了");
		}else {
			System.out.println("中了");
			break;
		}

扩展一个比较综合的程序:

这段代码比较综合,注意一下程序的健壮性问题,养成良好的编码习惯.

    假设一个简单的在ATM的取款过程如下:首先提示用户输入密码(password),
	最多只能输入3次,超过3次则提示用户"密码错误,请取卡"交易结束。
	如果用户密码正确,再提示用户输入金额(amount),。
	如果用户输入的金额符合上述要求,则打印输出用户取的钱数,
    最后提示用户"交易完成,请取卡",否则提示用户重新输入金额。假设用户密码是"111111"。
	
	
	ATM只能输出100元的纸币,一次取钱数要求最低0元,最高1000元
	
	打印格式:
	
	第一种情况:三次密码输入错误
	请输入密码:2
	密码错误,请重新输入:3
	密码错误,请重新输入:4
	密码错误,请取卡
	
	第二种情况:密码输入正确,可以取款
	请输入密码:2
	密码错误,请重新输入:111111
	请输入取款金额:3000
	您输入的取款金额有误,请重新输入:999
	请取走现金:999元
	交易完成,请取卡

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

	int count = 0;
	
	lo:while(true){
		System.out.println("请输入密码:");
		int password = sc.nextInt();
		// 1. 判断密码是否正确
		if(password != 111111){
			System.out.println("密码错误,请重新输入:");
			// 2. 如果密码错误,计数器自增
			count++;
			// 3. 如果计数器增长到了3,代表三次机会已经消耗完毕
			if(count == 3){
				System.out.println("三次机会已经使用完毕,请取卡");
				// 4. 结束程序
				break;
			}
		} else if(password == 111111){
			// 密码输入正确的逻辑
			while(true){
				
				System.out.println("请输入金额:");
				// 5. 接受要取款的金额
				int money = sc.nextInt();
				// 6. 判断金额是否正确
				if(money >= 0 && money <= 1000 && money % 100 == 0){
					System.out.println("请取走现金:"+money+"元");
					// 7. 将整个业务结束
					break lo;
				}else{
					// 8. 不正确,给出提示
					System.out.println("您输入的取款金额有误,请重新输入:");
				}
			}
		}
	}
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值