本篇分别用for,while,do while打印半金字塔、金字塔、镂空金字塔
后边没有注释,因为前边理解了后边应该也会了
for循环:
练习0:
九九乘法表的正序逆序
太简单了省略
练习1:请打印如下内容
正三角(半金字塔):
public class text1 {
public static void main(String[] args) {
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
System.out.print("*");//此处是不换行的,没有“ln”
}
System.out.println();// i(一趟)完成一次后进行换行
}
}
}
想要得到倒三角,有两种做法:
法1 改i: int i=5;i>=1;i- -
法2 改j:int j=5;j>=i;j- -
练习2:打印一个整金字塔:
for(int i=1;i<=5;i++){ //控制层数
for(int j=1;j<=5-i;j++){ //先打印空格
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++){ //再打印星数
System.out.print("*");
}
System.out.println("");
}
练习3:打印镂空金字塔
for(int i=1;i<=5;i++){
for(int k=1;k<=5-i;k++){//
System.out.print(" ");
}
//假设需要4个空格:第一层(for k=1;k<=4) 每次循环中都会sout下面的“ ”
for(int j=0;j<=2*i-1;j++){
if(j==1||j==2*i-1||i==5){
System.out.print("*");
}else{
System.out.print(" ");//中间镂空部分
}
}
System.out.println("");
}
某一行的第一个和最后一个: j==1||j==2*i-1
表示最后一行: i==5
while循环:
练习0:打印99乘法表:
int i=1;
while(i<=9){
int j=1;
while(j<=i){
System.out.print(i+"*"+j+"="+(i*j)+"\t");
j++;
}
i++;
System.out.println("");
注:
不能int j=0 在外层
因为此时的j++会修改全局的j,每次while(外)都会受到影响
练习1:
int i=1;
while(i<=5){
int j=1;
while(j<=i){
System.out.print("*");
j++;
}
System.out.println();
i++;
}
练习2:
int i=1;
while(i<=5){
int j=1;
while(j<=5-i){
System.out.print("");
j++;
}
int k=1;
while(k<=2*i-1){
System.out.print("*");
k++;
}
System.out.println();
i++;
}
练习3:
int i=1;
while(i<=5){
int k=1;
while(k<5-i){
System.out.print(" ");
k++;
}
int j=1;
while(j<=2*i-1){
if(j==1||j==2*i-1||i==5){
System.out.print("*");
}else{
System.out.print(" ");
}
j++;
}
System.out.println("");
i++;
}
do…while:
练习0:
int i=1;
do{
int j=1;
do{
System.out.print(i+"*"+j+"="+(i*j)+"\t");
j++;
}while(j<=i);
i++;
System.out.println(" ");
}while(i<=9);
练习1:
int i=1;
do{
int j=1;
do {
j++;
System.out.print("*");
}while(j<=i);
System.out.println("");
i++;
}while(i<=5);
练习2:
int i=1;
do {
int j=1;
do {
System.out.print(" ");
j++;
}while(j<=5-i);
int k=1;
do {
System.out.print("*");
k++;
}while (k<=2*i-1);
System.out.println();
i++;
}while(i<=5);
练习3:
int i=1;
do {
int j=1;
do {
System.out.print(" ");
j++;
}while(j<=5-i);
int k=1;
do {
if (k==1||k==2*i-1||i==5){
System.out.print("*");
}else{
System.out.print(" ");
}
k++;
}while(k<=2*i-1);
System.out.println();
i++;
}while(i<=5);