第一题:循环练习之求1-100之间的偶数和
-
定义求和变量
-
通过for循环获取到1-100之间所有的数
判断当前的元素是否是偶数, 是的话, 累加 -
输出最终结果
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("您输入的取款金额有误,请重新输入:");
}
}
}
}
}
}