for 循环打印图形
public class For {
public static void main(String[] args) {
//“使用双层for循环打印图形时,外层管行,内层管列”,那么是怎样的原理呢? 那么举个栗子!看下面:
//炒栗子1:利用“*”打印出一个长宽为5的矩形图案
for(int i=1;i<=5;i++){
for(int k=1;k<=5;k++){
System.out.print("*");
} //小知识:print与println的区别在于println多了个换行符“\n”,等价于print("\n")
System.out.println();
}
/* 生成了如下图形:
* *****
* *****
* *****
* *****
* *****
*/
//炒栗子2:利用“*”分别打印出一个高为5的正直角三角形,和一个倒直角三角形
for(int i=1;i<=5;i++){
for(int k=1;k<=i;k++){
System.out.print("*");
}
System.out.println();
} //重点:改变内循环的条件可以使列递增
/*生成正直角三角形
* *
* **
* ***
* ****
* *****
*/
for(int i=1;i<=5;i++){
for(int k=5;k>=i;k--){
System.out.print("*");
} //重点:同时改变内循环的初值和条件可使列递减。
System.out.println();
}
/* 生成倒直角三角形
* *****
* ****
* ***
* **
* *
*/
//糖炒栗子3:作出个乘法口诀表
for(int i=1;i<=9;i++){
for(int k=1;k<=i;k++){
System.out.print(k+"*"+i+"="+i*k+"\t"); //重点:内部实现只不过是把星星替换成了一个拼接的字符串,由此可见其循环出的就是一个直角三角图形。
} //小知识:“\t”是水平制表符Tab键,会自动缩进空格使内容对齐
System.out.println();
}
/*
* 生成图形,自行脑补~~~
*/
//爆炒栗子4:对元素为10个数字的数组进行冒泡排序
//冒泡原理:有n个数,那么就会冒n-1轮,每一轮都是从第一个元素开始,每次都是和它的下一个比,冒出的就不用再管了。
int arr[]={1,50,32,65,17,54,25,77,69,100};
for(int i=0;i<arr.length-1;i++){
for(int k=0;k<=i;k++){
if(arr[k]>arr[k+1]){
int t=arr[k]; //arr[k+1]=arr[k]+arr[k+1];
arr[k]=arr[k+1]; //arr[k]=arr[k+1]-arr[k];
arr[k+1]=t; //arr[k+1]=arr[k+1]-arr[k];
} //这里我给出了两种替换方法,一个是借助第三个变量,一个是相互加减,不明白的我下面举个小栗子
}
}
for (int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
//小栗子:创建两个不相等的int型变量,不通过第三个变量使他们的值交换。
int c=5;int u=1;
u=c+u; //u=6 c=5
c=u-c ; //u=6 c=1
u=u-c ; //u=1 c=5 先运算后赋值
System.out.println(c+","+u);
//爆炒栗子5:依据上个栗子 从第10个元素开始冒泡排序
//我在思考冒泡算法的时候,首先脑海里会形成一个图形,然后立马就知道用什么形式的嵌套循环,把问题图形化。
for(int i=0;i<arr.length-1;i++){
for(int k=arr.length-1;k>i;k--){
if(arr[k]<arr[k-1]){
arr[k]=arr[k]+arr[k-1];
arr[k-1]=arr[k]-arr[k-1];
arr[k]=arr[k]-arr[k-1];
}
}
}
for (int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
//最后举个干炒栗子(没难度,力气活):利用for循环输出以下图形
// 12345
// 2 4
// 3 3
// 4 2
// 54321
//经过上面的练习,其本质就是一个矩形图形。 只不过内层循环输出的东西不同罢了。
//第一行和第五行的循环规律类似,二至四行类似,且列是数和空格组成的。
for(int i=1;i<=5;i++){
for(int k=1;k<=5;k++){
if(i==1){ //第一行
System.out.print(k);
}else if(i==5){ //第五行
System.out.print(i-k+1);
}else{ //第二至四行
if(k==1){ //第一列
System.out.print(i);
}else if(k==5){ //第五列
System.out.print(k-i+1);
}else{ //第二至四列
System.out.print(" ");
}
}
}
System.out.println();
}
}
}
for 循环打印图形的更多相关文章
- java中使用二重循环打印图形
如图所示:打印沙漏图形 1:因为外层循环控制图形行数,所以首先判断这四个选项能否循环五次 2:以上四个循环的表达式都能循环五次,我们从内层循环入手. A:int i=0;i<5;i++ 当i=1 ...
- java08双重循环打印图形
// 九九乘法表 外层循环每执行一次,内层循环执行一遍 for (int i = 1; i <= 9; i++) { // 外层控制的是行数 for (int j = 1; j <= i; ...
- java基础08 双重循环打印图形
public class Double01 { /** * 若有3个班级各4名学员参赛, * 如何计算每个班级参赛学员的平均分? */ public static void main(String[] ...
- C#利用for循环打印图形练习题
(1) namespace ConsoleApp2 { class Program { static void Main(string[] args) { ; i < ; i++)//外层循环控 ...
- python中for嵌套打印图形
# 打印出九九乘法表 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 = 1 ...
- [Python] For 嵌套循环打印图形 nested loop-练习题答案
前一篇:[Python] For 嵌套循环打印图形 nested loop-练习题 [python的for循环嵌套打印如下图形] 图形一: 输出结果: ******* ******* ******* ...
- [Python] For 嵌套循环打印图形 nested loop - 练习题
[python的for循环嵌套打印如下图形] 图形一: ******* ******* ******* ******* 图形二: * *** ***** ******* 图形三: * *** **** ...
- C语言回滚(二)--循环打印
//1.用循环打印 /* FFEFEDFEDCFEDCBFEDCBA */ #include <stdio.h> #include<stdlib.h> int main(){ ...
- 编程题:利用for循环打印 9*9 表?
利用for循环打印 9*9 表? 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 ...
随机推荐
- 《UML大战需求分析》阅读随笔(六)
在我们做的代码设计中分为系统设计和程序设计.程序设计是系统设计中模拟程序的执行逻辑,定义客户机服务器对象合作的框架的那个部分.程序和事务设计中,作者讲述到程序和事务设计将系统设计制品放在一起,并作为系 ...
- 微服务中的netty
一般使用netty主要是整个netty流程的理解,实际开发中服务端.客户端参数的配置,以及连接 handle的管理是关键,再有就是encode和decode编码.解码. 服务端流程图 客户端流程图包含 ...
- 【BZOJ】4001: [TJOI2015]概率论
题意 求节点数为\(n\)的有根树期望的叶子结点数.(\(n \le 10^9\)) 分析 神题就打表找规律.. 题解 方案数就是卡特兰数,$h_0=1, h_n = \sum_{i=0}^{n-1} ...
- init shutdown reboot poweroff halt区别
init 首先看看LINUX系统几种运行级别# 0 - 停机(千万别把initdefault设置为0,否则系统永远无法启动)# 1 - 单用户模式# 2 - 多用户,没有 NFS# 3 - 完全多用户 ...
- BZOJ2109: [Noi2010]Plane 航空管制
Description 世博期间,上海的航空客运量大大超过了平时,随之而来的航空管制也频频 发生.最近,小X就因为航空管制,连续两次在机场被延误超过了两小时.对此, 小X表示很不满意. 在这次来烟台的 ...
- S3C2440UART之FIFO
一.基础知识 S3C2440有3个独立的串口,每一个都可以利用DMA和中断方式操作.每个包含2个64字节FIFO,一个收,一个发.非FIFO模式相当于FIFO模式的一个寄存器缓冲模式.每一个UART有 ...
- PHP:( && )逻辑与运算符使用说明
第一次看到以下语句的写法大惑不解 ($mCfg['LockChinaIp']==1 && (int)$_SESSION['AdminUserId']==0 && sub ...
- Python 爬虫3——第一个爬虫脚本的创建
在进行真正的爬虫工程创建之前,我们先要明确我们所要操作的对象是什么?完成所有操作之后要获取到的数据或信息是什么? 首先是第一个问题:操作对象,爬虫全称是网络爬虫,顾名思义,它所操作的对象当然就是网页, ...
- Java 用LinkdeList实现52张扑克牌
用LinkdeList实现52张扑克牌(不含大小王)的洗牌功能.提示:花色 ,和数字分别用数组存储. import java.util.LinkedList; import java.util.Ran ...
- PDF转JPG
问题:对于上次解决PB调用不起PDF插件的问题,所以将PDF转换为HTML.但是转换完之后发现一个问题,pdf2htmlEX插件转换出的html只支持IE9以上,IE9以下的都会各式错乱, 所以只能换 ...