使用java打印心型、圓形圖案的實(shí)現(xiàn)代碼
相信對(duì)于打印三角形都沒什么難度,只需要利用for循環(huán)嵌套使用就行
但是對(duì)于打印圓形和三角形不同因?yàn)榈綀A心距離相等的點(diǎn)一般不會(huì)橫坐標(biāo)和縱坐標(biāo)都為整數(shù)
打印愛心
愛心的公式 (x²+y²-1)³-x²*y³=0
調(diào)用此方法即可打印愛心圖案
/**
*打印心形
*/
public static void aiXin(){
for(float y = (float) 1.5;y>-1.5;y -=0.1) {
for(float x= (float) -1.5;x<1.5;x+= 0.05){
float a = x*x+y*y-1;
if((a*a*a-x*x*y*y*y)<=0.0) {
System.out.print("^");
}
else
System.out.print(" ");
}
System.out.println();
}
}

打印圓形
打印圓形主要就是所有點(diǎn)到圓心的距離為半徑即可
public static void circle(){
int r=15;//圓形的半徑
for (int y = 0; y <= 2 * r; y += 2) {//y的步長為2,改變y的步長可以將圓形變成橢圓
int x = (int)Math.round(r - Math.sqrt(2 * r * y - y * y));
int len = 2 * (r - x);
for (int i = 0; i <= x; i++) {
System.out.print(' ');
}
System.out.print('*');
for (int j = 0; j <= len; j++) {
System.out.print(' ');
}
System.out.println('*');
}
}
效果如下

如果想打印實(shí)心的只需要把條件修改即可
for (int j = 0; j <= len; j++) {
System.out.print('*');
}
此循環(huán)是打印圓形里面部分,輸出字符就是實(shí)心圓

補(bǔ)充知識(shí):在Java中打印金字塔圖案
1、問題描述
打印出金字塔圖案,如圖1所示。

2、問題分析
這時(shí)一個(gè)很經(jīng)典的循環(huán)應(yīng)用的問題。我們都知道,打印輸出的時(shí)候,都是從
最左端輸出,而這里第一個(gè)三角形符號(hào)是在最中間,這實(shí)際是因?yàn)槿切沃坝泻芏嗫崭?。?dāng)我們使用圓圈來表示空格,實(shí)際的輸出效果應(yīng)該是圖2的形式。

分析圖2,我們可以發(fā)現(xiàn)這個(gè)題目的奧秘。
(1) 確定程序框架
程序框架代碼如下:
publicclass Ch1_1
{
public static void main(String[] args)
{
*********
for(i = 1; i<= 5; i++) //循環(huán)5次,打印5行
{
//打印若干空格
//打印若干符號(hào)
}
}
}
(2) 尋找空格和符號(hào)規(guī)律
表1 空格和符號(hào)規(guī)律
|
行數(shù) |
空格數(shù) |
符號(hào)數(shù) |
||
|
1 |
4 |
5-1 |
1 |
1*2-1 |
|
2 |
3 |
5-2 |
3 |
2*2-1 |
|
3 |
2 |
5-3 |
5 |
3*2-1 |
|
4 |
1 |
5-4 |
7 |
4*2-1 |
|
5 |
0 |
5-5 |
9 |
5*2-1 |
|
規(guī)律 |
依次遞減1 |
5-行數(shù) |
依次遞增2 |
行數(shù)*2-1 |
(3) 打印空格數(shù)
由于每行空格數(shù)有“5-行數(shù)”的規(guī)律,對(duì)應(yīng)代碼如下:
for(i =1; i<= n; i++)
{
for(j = 1; j <= n – i; j++) //根據(jù)外層行號(hào),輸出符號(hào)左邊空格
System.out.println(“ ”);
}
(4) 打印符號(hào)數(shù)
由于每行符號(hào)數(shù)有著“行數(shù)*2-1”的規(guī)律,對(duì)應(yīng)代碼如下:
for(i =1; i<= n; i++)
{
for(k = 1; j <= i * 2 -1; k++) //根據(jù)外層行號(hào),輸出符號(hào)數(shù)
System.out.println(“*”);
}
(5) 完整程序
importjava.util.Scanner;
publicclass Ch1_1
{
public static void main(String[] args)
{
int i, j, k, n;
Scanner input = new Scanner(System.in);
System.out.print("請(qǐng)輸入金字塔層數(shù):");
n = input.nextInt();
//外層循環(huán)控制層數(shù)
for(i = 1; i <= n; i++)
{
//根據(jù)外層行號(hào),輸出星號(hào)左邊的空格
for(j = 1; j <= n - i; j++)
System.out.printf(" ");
//根據(jù)外層行號(hào),輸出星號(hào)個(gè)數(shù)
for(k = 1; k <= 2 * i -1; k++)
System.out.print("*");
//一行結(jié)束,換行
System.out.print("\n");
}
}
}
/*
*注:Java中的print、printf、println
*/
程序運(yùn)行結(jié)果,見圖3。

(6) 擴(kuò)展
倒金字塔
importjava.util.Scanner;
publicclass Ch1_1
{
public static void main(String[] args)
{
int i, j, k, n;
Scanner input = new Scanner(System.in);
System.out.print("請(qǐng)輸入倒金字塔層數(shù):");
n = input.nextInt();
//外層循環(huán)控制層數(shù)
for(i = 1; i <= n; i++)
{
//根據(jù)外層行號(hào),輸出星號(hào)左邊的空格
for(j = 1; j <= i - 1; j++)
System.out.printf(" ");
//根據(jù)外層行號(hào),輸出星號(hào)個(gè)數(shù)
for(k = 1; k <= 2 * (n - i) -1;k++)
System.out.print("*");
//一行結(jié)束,換行
System.out.print("\n");
}
}
}
直角三角形
importjava.util.Scanner;
publicclass Ch1_1
{
public static void main(String[] args)
{
int i, j, k, n;
Scanner input = new Scanner(System.in);
System.out.print("請(qǐng)輸入直角三角形層數(shù):");
n = input.nextInt();
//外層循環(huán)控制層數(shù)
for(i = 1; i <= n; i++)
{
//根據(jù)外層行號(hào),輸出星號(hào)個(gè)數(shù)
for(k = 1; k <= n - i + 1; k++)
System.out.print("*");
//一行結(jié)束,換行
System.out.print("\n");
}
}
}
以上這篇使用java打印心型、圓形圖案的實(shí)現(xiàn)代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot的類加載器(org.springframework.boot.loader)過程詳解
這篇文章主要介紹了springboot的類加載器(org.springframework.boot.loader),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Java基于elasticsearch實(shí)現(xiàn)集群管理
這篇文章主要介紹了java基于elasticsearch實(shí)現(xiàn)集群管理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
java中使用Files.readLines()處理文本中行數(shù)據(jù)方式
這篇文章主要介紹了java中使用Files.readLines()處理文本中行數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Spring Boot2+JPA之悲觀鎖和樂觀鎖實(shí)戰(zhàn)教程
這篇文章主要介紹了Spring Boot2+JPA之悲觀鎖和樂觀鎖實(shí)戰(zhàn)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
SpringBoot?+?layui?框架實(shí)現(xiàn)一周免登陸功能示例詳解
這篇文章主要介紹了SpringBoot+layui框架實(shí)現(xiàn)一周免登陸功能,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
Spring實(shí)現(xiàn)聲明式事務(wù)的方法詳解
這篇文章主要介紹了Spring實(shí)現(xiàn)聲明式事務(wù)的方法詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
詳解SpringBoot結(jié)合策略模式實(shí)戰(zhàn)套路
這篇文章主要介紹了詳解SpringBoot結(jié)合策略模式實(shí)戰(zhàn)套路,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Java數(shù)據(jù)結(jié)構(gòu)順序表的詳細(xì)講解
大家好,今天給大家?guī)淼氖琼樞虮?,我覺得順序表還是有比較難理解的地方的,于是我就把這一塊的內(nèi)容全部整理到了一起,希望能夠給剛剛進(jìn)行學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的人帶來一些幫助,或者是已經(jīng)學(xué)過這塊的朋友們帶來更深的理解,我們現(xiàn)在就開始吧2022-05-05

