目录
例题一:模拟注册、登陆操作,若输入密码错误提示还剩可输入的次数
打印图案是我们经常碰到的一类题目,我们学了语句以后就可以利用双重for循环来解决它了。
下面我用一些例题来学习怎么打印图案。
package com.feisi103;
public class Text1 {
public static void main(String[] args) {
for (int i = 0; i <5 ; i++) {
for (int j = 0; j < 7; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
?非常基础的一个图形,需要注意的是for循环中i的取值;
package com.feisi103;
public class Text2 {
public static void main(String[] args) {
for (int i = 0; i <6 ; i++) {
for (int j = 0; j <i ; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
?这个图形稍微有些变化,我们只需要想想j与i的关系将j的取值变一下即可。
package com.feisi103;
public class Test3 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j <(5-i) ; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
package com.feisi103;
public class Test4 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int k = 0; k <4-i ; k++) {
System.out.print(" ");
}
for (int j = 0; j <i*2+1 ; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
这个有些变化,变化在与需要打印空格,所以我们还需要用一个循环来打印空格
package com.feisi103;
public class Text05 {
public static void main(String[] args) {
for (int i = 0; i <7; i++) {
if (i<4)
{
for (int k = 0; k < (4-i); k++) {
System.out.print(" ");}
}
if (i>=4)
{
for (int l = 0; l <(i-2) ; l++) {
System.out.print(" ");
}
}
if (i<4)
{
for (int j = 0; j <(i*2)+1 ; j++) {
System.out.print("*");
}
}
if (i>=4)
{
for (int m = 0; m <((6-i)*2)+1; m++) {
System.out.print("*");
}
}
System.out.println("");
}
}
}
这个图形是经上面的图形变化而来的,我用的是整体的思路来打印图形
package com.feisi103;
public class Text06 {
public static void main(String[] args) {
for (int i = 0; i <7; i++) {
if (i<4)
{
for (int k = 0; k < (4-i); k++) {
System.out.print(" ");}
}
if (i>=4)
{
for (int l = 0; l <(i-2) ; l++) {
System.out.print(" ");
}
}
if (i<4)
{
for (int j = 0; j <(i*2)+1 ; j++) {
if (j==0||j==(i*2)){
System.out.print("*");
}else{
System.out.print(" ");
}
}
}
if (i>=4)
{
for (int m = 0; m <((6-i)*2)+1; m++) {
if (m==0||m==(6-i)*2){
System.out.print("*");
}else {
System.out.print(" ");
}
}
}
System.out.println("");
}
}
}
这个图形要注意的是:要打印里面的空格一行最多还只能打印两个*,所以我们就要在循环里加入判断,利用条件判断来打印=;
模拟系统是我们以后做系统软件开发是必不可少的
package com.feisi103;
import java.util.Scanner;
public class Text09 {
public static void main(String[] args) {
boolean c = true;
while (c=true) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入1注册");
System.out.println("请输入2登录");
System.out.println("请输入0退出");
int a = sc.nextInt();
if (a == 1) {
Scanner cs = new Scanner(System.in);
System.out.println("输入你的姓名");
System.out.println("输入你的电话号码");
System.out.println("输入你的身份证号");
String e = cs.next();
} else if (a == 2) {
int i =1;
boolean e = true;
Scanner d = new Scanner(System.in);
for (i = 1; i <=3; i++) {
System.out.println("用户名邹俊恒");
System.out.println("输入你的密码");
int b = d.nextInt();
if (b ==1) {
System.out.println("密码正确");
} else {
System.out.println("你还剩" + (3 - i) + "次");
}
}
} else if (a == 0) {
System.out.println("谢谢使用");
break;
} else {
System.out.println("请重新输入");
}
}
}
}
需要注意的是我们要用一个循环来重复上面的操作,要把输出语句放到循环里面来,
package com.feisi103;
import java.util.Scanner;
public class Text13 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean flag = true;
double sum = 0;
while (flag){
System.out.println("请输入1存款 2取款 3查看余额 0退出");
int a = sc.nextInt();
switch (a){
case 1:
Scanner cs = new Scanner(System.in);
System.out.println("请输入你需要存款的金额");
double b = cs.nextDouble();
sum = sum+b;
System.out.println("存款成功");
break;
case 2:
Scanner cc = new Scanner(System.in);
System.out.println("请输入你取款的金额");
double c =cc.nextDouble();
if (sum>=c){
sum = sum-c;
System.out.println("取款成功");
}else {
System.out.println("余额不足");
}
break;
case 3:
System.out.println("你的余额为"+sum);
break;
case 0:
flag = false;
break;
default:
System.out.println("输入错误");
}
}
}
}
这个代码跟上面的代码不同的是要定义一个数来存储数据;?
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生的个数:");
int stuNumber = sc.nextInt();
double sumScore = 0.0;
for (int i = 1; i <=stuNumber; i++) {
for (int j = 1; j <=5; j++) {
System.out.println("请输入第"+i+"个学生的第"+j+"门成绩");
double score = sc.nextDouble();
sumScore+=score;
}
System.out.println("第"+i+"个学生的五门成绩总分是:"+sumScore);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入班级人数:");
int number = sc.nextInt();
int sum = 0;
for (int i = 1; i <=number ; i++) {
System.out.println("请输入第"+i+"个学生的成绩");
double score = sc.nextDouble();
if(score<80){
continue;// 如果分数小于80分,直接跳过本次循环,不计算在内
}
sum++;
}
System.out.println("本班成绩80分以上一共有"+sum+"人");
}
public static void main(String[] args) {
int num1 = 12,num2=20;
int maxNum = num1>num2?num1:num2;
int maxPubNum = 1;//假设maxPubNum是两个数的最大公约数
for (int i = 1; i <=maxNum ; i++) {
if(num1%i==0 && num2%i==0){
System.out.println(i+"是num1和num2的公约数");
maxPubNum = i;//因为i是随着循环从小到大在变,因此最后那个公约数就是这两个数的最大公约数
}
}
System.out.println(num1+"和"+num2+"的最大公约数是:"+maxPubNum);
}
public static void main(String[] args) {
int num1=12,num2=20;
int max=num1>num2?num1:num2;
for (int i = max; i <=num1*num2 ; i++) {
if(i%num1==0 && i%num2==0){
System.out.println(num1+"和"+num2+"的最小公倍数是:"+i);
break;
}
}
}