1、循环结构(for,while,do while)
练习一:输出等腰三角形
public static void main(String[] args) { int max = 5; for(int i = 1; i<=5 ; i++) { for (int j = 1; j <= max - i; j++){ System.out.print(" ");} for (int k = 1; k <= i * 2 - 1; k++){ System.out.print("*");} System.out.println(); } }
输出结果:
*
***
*****
*******
*********
练习二:输出等边三角形
public static void main(String[] args) { int max = 5; for(int i = 0; i<=5 ; i++) { for (int j = 0; j <= max - i; j++){ System.out.print(" ");} for (int k = 0; k <= i - 1; k++){ System.out.print("* ");} System.out.println(); } }
输出结果:
*
* *
* * *
* * * *
* * * * *
练习三:99乘法表
for (int i=1;i<10;i++){ for (int j=1;j<=i;j++){ System.out.print(i+"*"+j+"="+i*j+" "); } System.out.println();
结果:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
练习四:计算100以内奇数和
public class Test004 { public static void main(String[] args) { int sum=0; for (int i=1;i<=100;i++){ if(i%2!=0){ sum+=i; } } System.out.println(sum); } }
输出结果:
2500
练习五:输出空心菱形
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("输入行数:");
int lay = scanner.nextInt();
for (int i = 0; i <= lay; i++) { //控制上半个菱形行数
for (int j = 0; j < lay-i; j++) { //输出空格
System.out.print(" ");
}
for (int k = 1; k <=2*i-1 ; k++) { //挨着空格直接输出一个*,另一个在最后
if (k==1||k==2*i-1){
System.out.print("*");
}else{
System.out.print(" "); //其他全是空格
}
}
System.out.println();
}
for (int i = 1; i <=lay-1; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2*(lay-i)-1; k++) {
if (k==1||k==2*(lay-i)-1){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
输出结果:
*
* *
* *
* *
* *
* *
*
思考:Java代码都符合固定的逻辑,有些时候需要思考
例如:
2、while(布尔值){
循环体
}
do……while 循环
do{
循环体
}while();
do……while 先执行循环体,再去判断
练习1-100 7的倍数
public static void main(String[] args) { int i=0; int sum=0; int num=0; while(i<=100){ if (i%7==0&&i!=0){ sum+=i; num++; } i++; } System.out.println(num+"个"); System.out.println("和:"+sum); }
运行结果:
14个
和:735
思考:0 的问题 必考虑
剑指offer第一章说到的0的问题,×、÷、% 都要考虑0的问题
break:用于终止某个语句块的执行(当前语句块)
也可以添加标签,跳出标签语句块(垃圾不要用)
continue:跳过当前语句,不影响其他条件的执行。
也可以添加标签,影响外层逻辑(垃圾不要用)
return:终极结束语句,方法直接结束。
练习
程序开始运行输出到控制台: ************提示**************** 输入0:开户 输入1:查询 输入2:存款 输入3:取款 输入4:退出 ******************************** 如果用户输入的不是1-4之间的数提示:您选择的菜单不存在,请重新选择: 程序开始运行输出到控制台: ************提示**************** 输入0:开户 输入1:查询 输入2:存款 输入3:取款 输入4:退出 ******************************** 当用户输入0时。则进入开户功能:系统提示: ******************************** 您选择的是开户功能 请输入您的姓名: 此时用户需要输入姓名,输入完毕后系统提示: 请输入您的身份证号: 此时用户需要输入身份证号,输入完毕验证是否为18位身份证,如果未通过验证,提示重新输入身份证 直到通过验证为止。 通过验证后输入密码: 此时用户需要输入6位纯数字密码,输入完成后提示: 开户成功 谢谢使用,从新回到 ************提示**************** 输入0:开户 输入1:查询 输入2:存款 输入3:取款 输入4:退出 ********************************
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("************提示***********");
System.out.println("输入0:开户");
System.out.println("输入1:查询");
System.out.println("输入2:存款");
System.out.println("输入3:取款");
System.out.println("输入4:退出");
System.out.println("**************************");
while(true){
System.out.println("请输入序号");
int i=scanner.nextInt();
if (i==0){
System.out.println("您选择的是开户");
account();
continue;
}
if (i==1){
System.out.println("查询");
}
if (i==2){
System.out.println("存款");
break;
}
if (i==3){
System.out.println("取款");
break;
}
if (i==4){
System.out.println("退出");
return;
}
if (i!=1&&i!=2&&i!=3&&i!=4){
System.out.println("输入错误重新输入");
continue;
}
}
}
public static void account(){
Scanner scanner=new Scanner(System.in);
String name;
String num;
int password;
System.out.println("请输入您的姓名:");
name=scanner.next();
System.out.println("请输入您的身份证号:");
num=scanner.next();
int i=num.length();
if (i!=18){
System.out.println("身份证号输入错误,返回上一级");
return;
}
System.out.println("请输入您的密码:(密码为6为纯数字)");
password=scanner.nextInt();
String s=password+"";
int test=s.length();
if (test!=6){
System.out.println("密码输入错误,返回上一级");
return;
}
System.out.println("jiji开户成功");
}
水仙花数
int i=100; int bai=0,shi=0,ge=0; while(i<=999){ bai=i/100; shi=(i/10)%10; ge=i%10; if ((bai*bai*bai+shi*shi*shi+ge*ge*ge)==i){ System.out.println(i); } i++; }