Java學習日記基礎篇(三-下)——流程控制之循環控制


循環控制

for循環

語法:

for(循環初值;循環條件;步長)
{
	語句;	//循環體
}

例子:

import java.io.*;
public class Demo4
{
	public static void main(String args[])
	{
		for(int i=0;i<10;i++)
		{
			System.out.println("12.3");
		}
	}
}

while循環

語法:特別說明while循環是先判斷,再執行語句

while(循環條件)
{
	語句;   //循環體
}

例子:

import java.io.*;
public class Demo4
{
	public static void main(String args[])
	{
		int i=0;
		while(i<10) 
		{
			System.out.println("12.1");
			i++;
		}
	}
}

do while循環

語法:特別說明:do while是先執行再判斷

do {
	語句;	//循環體
}while(循環條件);

例子:

import java.io.*;
public class Demo4
{
	public static void main(String args[])
	{
		int i = 0;
		do{
			System.out.println("do while循環");
			i++;
		}while(i<10);
	}
}

do while 和 while 的區別

import java.io.*;
public class Demo4
{
	public static void main(String args[])
	{
		int i=0;
		
		while(i>10) 
		{
			System.out.println("while循環");
			i++;
		}
		for (i=0;i>10;i++)
		{
			System.out.println("for循環");
		}
		i = 0;
		do{
			System.out.println("do while循環");
			i++;
		}while(i>10);
	}
}


輸出結果:
D:\myJavaDemo>java Demo4
do while循環

  do while不管符不符合條件都會執行一次循環

案例:請編寫一個程序,可以接受一個整數,表示層數,打印出金字塔     

 當遇到一個題無從下手時,可以先拆解成簡單的問題

public class Demo5
{
	public static void main(String []args)
	{
		//死去活來-->打四層
		int lay = 4;		//表示有多少層
		for (int i=1;i<=lay;i++)
		{
			//打印*
			for(int k=lay-i;k>0;k--)	//int k=1;k<=lay-i;k++
			{
				System.out.print(" ");
			}
			for (int j=1;j<=(i-1)*2+1;j++)	//1-1,2-3,3-5
			{
				System.out.print("*");
			}
			
			System.out.println();		//打印出換行符
		}
	}
}

  注意 System.out.println 和 System.out.print 不一樣,前者會打出換行

案例二:將金字塔打印成鏤空形狀的

  • 提示:要想到對打印 * 的那條語句動手腳
  • 注意到只有第一層和最后一層打印的東西和原來完全相同,所以要做判斷,判斷是否是頂層或者底層,i表示層數——(i==1 || ==lay)
  • 然后進行*號的判斷,前后的 * 號都要打出來,所以要判斷 * 是否是第一個和最后一個,j表示要打印的是第幾個 * ——(j==1 || j==(i-1)*2+1),剩下的要打印 空格
public class Demo5
{
	public static void main(String []args)
	{
		int lay = 7;		
		for (int i=1;i<=lay;i++)
		{
			for(int k=lay-i;k>0;k--)
			{
				System.out.print(" ");
			}
			for (int j=1;j<=(i-1)*2+1;j++)
			{
				//判斷蓋層是否是頂層或者是底層
				if(i==1||i==lay)
				{
					System.out.print("*");
				}
				else
				{
					//如果是第一個*和最后一個*號,都要打出來
					if(j==1||j==(i-1)*2+1)
					{
						System.out.print("*");
					}
					else    //否則就打印空格
					{
						System.out.print(" ");
					}
				}
			}
			
			System.out.println();		
		}
	}
}

作業:打一個鏤空的菱形

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM