1.tips
● 循环次数:嵌套循环的总循环次数为外层循环次数乘以内层循环次数。因此,要注意合理控制循环次数,以避免不必要的循环操作,提高程序效率。
● 循环关系:嵌套循环必须是包含关系,不能出现交叉。即内层循环必须完全包含在外层循环内。
● 循环条件:外层循环的循环条件决定了外层循环的执行次数,而内层循环的循环条件则决定了内层循环在每次外层循环迭代时的执行次数。在编写嵌套循环时,需要确保内外循环的循环条件相互匹配。
2.练习
代码如下:
public class Exec01 {
public static void main(String[] args) {
for(int i=1;i<=5;i++)
{
for(int j=1;j<=7;j++)
{
System.out.print("*");
}
System.out.println();
}
}
}
个人思路:观察要打印的图案,分析可知道该图案由五行,每行七个“*”组成,所以我们使用第一层for循环来控制行数,然后再嵌套一个for循环控制每行要打印“*”的个数。
2.
代码如下
public class Exec04 {
public static void main(String[] args) {
for(int i=0;i<5;i++)
{
for(int n=1;n<=(4-i);n++)
{
System.out.print(" ");
}
for(int j=0;j<(i*2)+1;j++)
{
System.out.print("*");
}
System.out.println();
}
}
}
个人思路:观察图案,我们可以把该图案看做一个由“ ”组成的倒直角三角形和一个由“*”组成的三角形组成,所以我们首先通过嵌套for循环输出一个由空格组成的倒三角形,然后再输出一个由“*”组成的三角形即可。
3.
代码如下:
public class Exec05 {
public static void main(String[] args) {
for(int i=0;i<4;i++)
{
for(int n=1;n<=(4-i);n++)
{
System.out.print(" ");
}
for(int j=0;j<(i*2)+1;j++)
{
System.out.print("*");
}
System.out.println();
}
for(int k=1;k<=3;k++)
{
for(int m=1;m<=k+1;m++)
{
System.out.print(" ");
}
for(int q =5;q>2*k-2;q--)
{
System.out.print("*");
}
System.out.println();
}
}
}
个人思路:观察图案,我们可以得知该图案由一个四行的正三角形和一个三行的倒三角形组成和一个由空格组成的倒三角形和一个由空格组成的正三角形。
4.
代码如下:
public class Exec06 {
public static void main(String[] args) {
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= 4 - i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
if (j == 1 || j == 2 * i - 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
for (int k = 1; k <= 3; k++) {
for (int q = 1; q <= k; q++) {
System.out.print(" ");
}
for (int t = 1; t <=5 ; t++) {
if (t == 1 || t == 7-2*k) {
System.out.print("*");
} else {
System.out.print(" ");
}
} System.out.println();
}
}
}
个人思路:观察图案,我们可以得知图案中的菱形中,输出了一个由“ ”组成的倒三角形之后就打印“*”,然后就是第(2*i)-1列输出打印一个“*”。这样就组成了该图案的上半部分,然后下半部分的思路同上半部分类似。
5、综合小练习、模拟注册、登陆操作,若输入密码错误提示还剩可输入的次数
package com.feisi0103;
import java.util.Scanner;
public class Exec09 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i=1;
while(i==1||i==2){
System.out.println("请选择您想进行的操作:");
System.out.println("0.退出 1.注册 2.登录");
i = sc.nextInt();
if(i==1){
System.out.println("用户名:");
String yhm = sc.next();
System.out.println("密码:");
String mm = sc.next();
System.out.println("您的用户名为:"+yhm);
System.out.println("您的密码为:"+mm);
}
if(i==2){
for(int q=2;q>=0;q--) {
System.out.println("请输入您的用户名:");
String yhm1=sc.next();
System.out.println("请输入您的密码:");
String m=sc.next();
if (yhm1.equals("admin") && m.equals("123")) {
System.out.println("用户名和密码正确,欢迎进入系统");
break;
} else if(q==0){
System.out.println("您错误的次数过多,请1小时后重试");
}
else{
System.out.println("密码错误,您还有"+q+"次机会");
continue;
}
}
}
}
}
}
***以上代码均为初学者的见解,不喜勿喷,如有更优解欢迎在评论区留言。