JavaSE基础
多听一遍不如多练一遍,多练一遍不如总结一遍,希望各位在学习的过程中,要多听,多写,多练,每天将自己所学汇总一遍,查缺补漏,成就更好的自己
[TOC]
接Day04循环
3.for循环
3.1 语法
for (初始化;循环条件;条件变化控制){
循环体 //同while 一样,满足循环条件后,向下进行,只是将初始化和条件变化控制一起放入了for的括号里
}
for(int i = 1; i <= 100; i++) {
System.out.println(i);//输出1-100
}
// 第一次循环 i=1 判断 i<=100 输出i的值 i++
// 第二次循环 i=2 判断 i<=100 输出i的值 i++ ,循环如此,不满足循环调节结束
3.2 练习
输出练习
public static void main(String[] args) {
// TODO Auto-generated method stub
//输出1——100
for(int i = 1; i <= 100; i++) {
System.out.println(i);
}
//输出100——1
for(int i = 100; i >=1; i--) {
System.out.println(i);
}
//输出1-100的奇偶数
for (int i = 1; i <= 100; i++) {
if(i%2 == 0) {
System.out.println("偶数"+i);
}else {
System.out.println("奇数"+i);
}
}
//输出a-z
for(int i = 97; i <= 122; i++) {
System.out.println((char)i);
}
//输出Z-A
for(int i = 90; i >= 65; i--) {
System.out.println((char)i);
}
}
计算练习
public static void main(String[] args) {
// TODO Auto-generated method stub
//计算1-100的累加
int sum=0; //定义变量存储累加值
for(int i = 1; i <= 100; i++)
{
sum+=i; //累加
}
System.out.println(sum);
//计算10!
int mult = 1; //定义变量存储阶乘值
for(int i = 1; i <= 10; i++)
{
mult*=i; //阶乘
}
System.out.println(mult); //输出
//计算1 + 1/2 + 1/3 +......+ 1/100
double sum=0.0; //定义变量存储累加值,浮点型用double
for(int i = 1; i <= 100; i++)
{
sum+=1.0/i; //累加
System.out.println(sum);
}
//计算1 - 1/2 + 1/3 +......- 1/100
double sum=0.0; //定义变量存储累加值,浮点型用double
for(int i = 1; i <= 100; i++)
{
if(i % 2 == 0)
{
sum-=1.0/i; //偶数时变减法
}else {
sum+=1.0/i; //奇数时累加
}
}
System.out.println(sum);
}
应用题
public static void main(String[] args) {
// TODO Auto-generated method stub
//输出所有水仙花数
//水仙花数
for(int i = 100; i < 1000; i++) {
int x = i/100;
int y = i/10%10;
int z = i%10;
if(x*x*x + y*y*y +z*z*z == i) {
System.out.println(i);
}
}
//输出1000~2000之间的闰年,每一行5个
int num = 0; // 统计闰年的数量
for (int i = 1000; i <= 2000; i++) {
if ((i % 400 == 0) || (i % 4 == 0 && i % 100 != 0)) {
System.out.print(i + " ");
// 每发现一个闰年,num自增1
num++;
// 每一次发现闰年之后判定num是否5的倍数
if (num % 5 == 0) {
// num是5--10--15--20、、、之类的数值
System.out.println();
}
}
}
System.out.println(num);
}
4.流程控制
4.1 break
//break : 终止循环或者switch结构
public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i = 0; i < 10; i++) {
System.out.println(i);
// 判定是否有5出现
if (i == 5) {
// 终止循环
break;
}
}
System.out.println("OVER");
4.2 continue
//continue : 跳过本轮循环后面的内容,直接进入新的一轮循环
public static void main(String[] args) {
/**
* continue
* 逢7过
*/
for (int i = 0; i < 10; i++) {
// 跳过偶数
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
System.out.println("游戏结束");
}
5.循环嵌套
5.1概述
循环中包裹着一个完整的循环
5.2练习
打印矩形
/**
* * *
* * *
* * *
*/
// 外层循环,控制执行的行数
for (int i = 0; i < 3; i++) {
// 内存循环,控制打印的列数
for (int j = 0; j < 3; j++) {
System.out.print("* ");
}
System.out.println();
}
九九乘法表
```java
//九九乘法表
for(int i = 1; i <= 9; i++) {
if(i >= 2)
{
System.out.println(); //行
}
for(int j = 1; j <= i; j++) {
System.out.print(j+"*"+i+"="+i*j+" ");//列
}
}
百鸡问题
/**
* 百鸡问题--老王买鸡
* 公鸡5钱一只 1~20
* 母鸡3钱一只 1~33
* 小鸡1钱3只 3~99
* 一百钱买鸡一百只,问有几种组合?(每种最少一只)
*/
int i=0;
for(int x = 1;x <= 20;x++) {
for(int y = 1; y <= 33;y++ ) {
for(int z = 1;z <= 99;z++) {
if ((x+y+z == 100) && (x*5+y*3+z/3==100)) {
System.out.println("公鸡:" + x + ",母鸡:" + y + ",小鸡:" + z);
i++;
}
}
}
}
System.out.println("总共有"+i+"种购买方法");
ATM案例(丐版)
public static void main(String[] args) {
// TODO Auto-generated method stub
/**
* 模拟ATM操作账户的过程
*/
// 创建扫描器
Scanner sc = new Scanner(System.in);
int balance = 0; // 余额
String usename = null ; //用户名
String password = null; //密码
int select; // 用户需要进行的操作选项
// 循环提示操作
do {
// 提示并获取用户的选择
System.out.println("欢迎光临红浪漫银行,请输入您需要的业务(1:开户2:存款3:取款4:转帐5:查询余额6:修改密码0:退出):");
select = sc.nextInt();
// 使用switch判定用户选择的操作
switch (select) {
case 1:
//提示输入账号
System.out.println("请输入账号");
String use = sc.next();
usename = use;
//提示输入密码
System.out.println("请输入密码");
String pass = sc.next();
password = pass;
System.out.println("您的密码为"+password);
break;
case 2:
// 提示输入并获取存款金额
System.out.println("欢迎使用个存款功能,请输入存款金额:");
int saveMoney = sc.nextInt();
// 余额增加
balance += saveMoney;
System.out.println("存款成功...");
break;
case 3:
// 提示输入并获取取款金额
System.out.println("欢迎使用个取款功能,请输入取款金额:");
int takeMoney = sc.nextInt();
// 判定余额是否充足
if (balance >= takeMoney) {
// 余额减少
balance -= takeMoney;
System.out.println("转账成功...");
} else {
System.out.println("余额不足");
}
break;
case 4:
//提示输入转账人的账号
System.out.println("请输入转账人的账号");
String usename1 = sc.next();
// 提示输入转账金额
int leadMoney = sc.nextInt();
// 判定余额是否充足
if (balance >= leadMoney) {
// 余额减少
balance -= leadMoney;
System.out.println("取款成功...");
} else {
System.out.println("余额不足");
}
case 5:
// 输出余额
System.out.println("账户金额:" + balance);
break;
case 6:
//提示输入原密码
System.out.println("请输入原密码");
String oldPassword = sc.next();
if(oldPassword.compareTo(password) == 0 ) {
//提示输入新密码
System.out.println("请输入新密码");
String newPassword = sc.next();
System.out.println("修改成功");
}else {
System.out.println("您的密码错误");
System.out.println("原密码为"+password+"您输入的为"+oldPassword);
}
break;
default:
System.out.println("您选择的业务尚未开通...");
break;
}
} while (select != 0); // 如果选项不是0就一直执行
System.out.println("谢谢使用,期待您再次光临!!!");
}
今日习题
/*
* 5、模拟超市购物,从键盘录入整数, 选择购买的物品:
* 1==可口可乐【3元】,2==士力架【2.5元】,3==脉动【5元】
* 4==马可波罗【3元】,5==大面包【5元】,6==八宝粥【3元】
* 0==结束
* 如果是其他数, 继续循环
* 结束循环之后计算总价格*/
Scanner sc = new Scanner(System.in);
int i = 0;
double sum = 0.0;
do {
System.out.println("请输入您想要的商品的商品号(0-6)");
i = sc.nextInt();
switch (i) {
case 0:
System.out.println("购买完成,总消费"+sum+"元");
System.out.println("欢迎下次光临");
break;
case 1:
sum += 3;
System.out.println("您买了可口可乐,消费3元,总消费"+sum+"元");
break;
case 2:
sum += 2.5;
System.out.println("您买了士力架,消费2.5元,总消费"+sum+"元");
break;
case 3:
sum += 5;
System.out.println("您买了脉动,消费5元,总消费"+sum+"元");
break;
case 4:
sum += 3;
System.out.println("您买了马可波罗,消费3元,总消费"+sum+"元");
break;
case 5:
sum += 5;
System.out.println("您买了大面包,消费5元,总消费"+sum+"元");
break;
case 6:
sum += 3;
System.out.println("您买了八宝粥,消费3元,总消费"+sum+"元");
break;
default:
System.out.println("没有该商品");
break;
}
}while(i != 0);
}
//输出2~100之内的素数【困难】
for(int i = 2; i <= 100 ; i++) {
boolean flag = true; // 假设每一个数字都是质数
for (int j = 2; j < i; j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag) {
System.out.println(i);
}
}
//循环录入5个学生的考试成绩,计算平均分
Scanner sc =new Scanner(System.in);
int sum = 0;//总分
for(int i = 1; i <= 5; i++) {
System.out.println("请输入第"+i+"个学生成绩(0-100)");
int grade = sc.nextInt();
sum += grade;
}
System.out.println("平均分为:"+sum/5);
//while版 九九乘法表
while(i <= 9)
{
if(i >= 2) {
System.out.println();
}
int j=1;
while(j <= i){
System.out.print(j+"*"+i+"="+i*j+" ");//列
j++;
}
i++;
}