黑马程序员技术交流社区
标题:
键盘录入1-20数字,打印空心正方形
[打印本页]
作者:
solomanlove
时间:
2016-1-9 15:04
标题:
键盘录入1-20数字,打印空心正方形
/*
键盘录入1-20数字,打印空心正方形
* * * * * * * * *
* *
* *
* *
* *
* *
* *
* *
* * * * * * * * *
1,先进行键盘录入变量
2,需要行循环和列循环
3,进行判断是否满足正方形的四条边.
*/
import java.util.Scanner; //导包
class DaDiShu {
public static void main (String[] args){
Scanner sc = new Scanner(System.in); //创建键盘录入对象;
System.out.println("请输入一个整数,范围是1-20之间");
int num = sc.nextInt(); //将键盘录入的整数赋值给num;
for (int i = 1; i < num ;i++ ) { //行循环
for (int j = 1;j < num ;j++ ) { //列循环
if (i == 1 || j == 1 || i == num - 1 || j == num - 1) { //判断是否是正方形的四条边
System.out.print("* "); //满足条件打印*
}else{
System.out.print(" "); //不满足条件打印空格
}
}
System.out.println(); //进行换行
}
}
}
作者:
549208564
时间:
2016-1-9 15:14
楼主,怎么可以让空心中有文字,如:
*********
* *
* 你好 *
* *
*********
让这个文字在中间,不管有多少列,怎么做啊
作者:
qxz394731688
时间:
2016-1-9 15:22
这个比较简单吧
作者:
solomanlove
时间:
2016-1-9 15:39
本帖最后由 solomanlove 于 2016-1-9 15:41 编辑
if (i == 1 || j == 1 || i == num - 1 || j == num - 1) { //判断是否是正方形的四条边
System.out.print("* "); //满足条件打印*
}else{
//System.out.print(" "); //不满足条件打印空格
if (i == num/2 && j == num/2 ) { //判断中间位置
System.out.print("你"); //输出"你",这里不能输出多个汉字,否则会正方形变形.
}else{
System.out.print(" ");
}
}
因本人能力有限,只能再其中添加一个汉字,如果添加多个汉字的话,就需要用到替换
replaceAll
还有其他知识
作者:
solomanlove
时间:
2016-1-9 15:43
qxz394731688 发表于 2016-1-9 15:22
这个比较简单吧
高手,简单就请写段代码(主要在是里面有多个汉字),给菜鸟看看吧,让我们开开眼界.
作者:
一大把手
时间:
2016-1-9 15:43
很不错啊!
作者:
黑色皮肤的马
时间:
2016-1-9 23:20
import java.util.Scanner;
class KongXinZhengFangXing {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("请输入整数:");
int a = sc.nextInt();
printSqurt(a);
}
}
public static void printSqurt(int m) {
for(int x=0;x<m;x++) {
if(x==0 || x==(m-1)) {
for(int y=0;y<m;y++) {
System.out.print("* ");
}
}else {
for(int y=0;y<m;y++) {
if(y==0||y==(m-1)) {
System.out.print("* ");
}
else {
System.out.print(" ");
}
}
}
System.out.println();
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2