作者:多少年都不会变 | 来源:互联网 | 2023-05-22 17:41
程序逻辑结构
大致可以分为:
1.顺序结构:
顺序执行,根据编写的顺序,从上到下运行
2.条件分支结构:
- 判断语句:1. if 2.if...else 3.if...else if...else
- 选择语句:1.switch
if
代码说明
import java.util.Scanner;
//找出公约数是5的数,再找出公约数是2的数
//当x和y大于2时,求和
public class Deom01 {public static void main(String[] args) {Scanner num1 = new Scanner(System.in);System.out.println("请输入第一个数x");int x = num1.nextInt();Scanner num2 = new Scanner(System.in);System.out.println("请输入第二个数y");int y = num2.nextInt();if(x%5 == 0) {System.out.println("x是5的公约数");}if(y%2 == 0) {System.out.println("y是2的公约数");}if(x > 2 && y > 2) {int sum = x + y;System.out.println("sum = " + sum);}}}
if...else
代码说明
import java.util.Scanner;
//判断年份是不是闰年
//四闰百不闰 四百闰public class Deom02 {public static void main(String[] args) {Scanner year = new Scanner(System.in);System.out.println("请输入一个年份x");int x = year.nextInt();if(0 == x % 4 && 0 != x % 100 || 0 == x % 400) {System.out.println("x是闰年哦");}else {System.out.println("x不是闰年哦");}}}
if...else if...else
代码说明
/** 需求:用户自己输入:商品单价50和商品数量12需求:收银台收款程序输入:实付金额600如果:应付金额>500,打8折输出:找零金额120升级版:判断实付金额够不够*/
import java.util.Scanner;public class Deom03 {public static void main(String[] args) {Scanner num = new Scanner(System.in);System.out.println("请输入商品数量n");int n = num.nextInt();Scanner money = new Scanner(System.in);System.out.println("请输入实付金额m");int m = money.nextInt();if (m 500 ) {double n1 = (n * 50) * 0.8;System.out.println("打8折优惠哦 您需要付款 " + n1);double n2 = m - n1;System.out.println("找您 " + n2);}}}
switch
switch(条件)只适用于判断值是否相等,这里面需要判断的条件可以是byte、short、int、char、String类型的条件。
case具有穿透性,在switch语句中,如果case后面不写break,就会出现穿透现象,也就是说不会判断下一个case的值,直接往后运行了,直到又遇见break或者switch整体结束。
代码说明
//输出几天后是星期几
import java.util.Scanner;public class Deom04 {public static void main(String[] args) {Scanner day = new Scanner(System.in);System.out.println("请输入天数d");int d = day.nextInt();int w = d % 7;switch(w) {case 1:System.out.println("今天是周一");break;case 2:System.out.println("今天是周二");break;case 3:System.out.println("今天是周三");break;case 4:System.out.println("今天是周四");break;case 5:System.out.println("今天是周五");break;case 6:System.out.println("今天是周六");break;case 0:System.out.println("今天是周日");break;default:System.out.println("输入的数字有误");break;}}}
3.循环结构:1.for 2.while 3.do...while
for
使用for循环时,他应该是知道规律且知道循环次数才会使用for循环的
代码说明
//打印九九乘法表
/*
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 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
*/
public class Deom06 {public static void main(String[] args) {for (int x &#61; 1;x <10;x&#43;&#43;) {for(int y &#61; 1;y <&#61; x; y&#43;&#43;) {System.out.print(y &#43; "*"&#43; x &#43; "&#61;" &#43; x*y &#43;"\t");}System.out.println();}}}
//这里涉及到嵌套循环
import java.util.Scanner;
/*有一对兔子&#xff0c;从出生后第3个月起每个月都生一对兔子&#xff0c;小兔子长到第三个月后每个月又生一对兔子&#xff0c;
假如兔子都不死&#xff0c;问每个月的兔子总数为多少&#xff1f;*1: 1
*2: 1
*3: 2
*4: 3
*5: 5dui
*/ public class Test01 {public static void main(String[] args) {int m1 &#61; 1 ;int m2 &#61; 1;int sum ;for (int m3 &#61; 3; m3 <&#61; 12 ;m3&#43;&#43;) {/** 第一个月&#xff1a;1对* 第二个月&#xff1a;1对* 第三个月&#xff1a;2对* 第四个月&#xff1a;3对* 第五个月&#xff1a;5对* m1 &#61; 1 * m2 &#61; 1* m3 &#61; 1&#43;1 ->m2&#43;m1* m4 &#61; 2&#43;1 ->m3&#43;m2* m5 &#61; 3&#43;2 ->m4&#43;m3* */sum &#61; m1 &#43; m2 ;m1 &#61; m2;m2 &#61; sum;System.out.println("兔子现在有 " &#43; sum &#43; "对");}}}
while
当不知道规律&#xff0c;不知道需要循环多少次时使用while循环
代码说明
/** 需求:有猜数字游戏&#xff0c;其游戏规则为&#xff1a;程序内置一个 1 到 1000 之间的数字作为猜测的结果&#xff0c;由用户猜测此数字。用户每猜测一次&#xff0c;由系统提示猜测结果&#xff1a;大了、小了或者猜对了&#xff1b; 直到用户猜对结果&#xff0c;则提示游戏结束。 用户可以提前退出游戏&#xff0c;即&#xff0c;游戏过程中&#xff0c;如果用户录入数字0&#xff0c;则游戏终止。*/
import java.util.Scanner;public class Deom05 {public static void main(String[] args) {Scanner num &#61; new Scanner (System.in);System.out.println("猜数游戏开始啦");int n1 &#61; (int)(Math.random()* 1000) ;int n &#61; 1;while(n !&#61; n1) {System.out.println("请输入你心里想的数字");n &#61; num.nextInt();if(n n1) {System.out.println("数字大了哦");}else {System.out.println("恭喜你猜对啦");break;//结束循环}}num.close();//强制结束System.out.println("游戏结束");}}
do...while
与while循环不一样的是&#xff0c;它先执行一次&#xff08;do&#xff09;&#xff0c;再循环
代码说明
//do while
public class Deom08 {public static void main(String[] args) {int a &#61; 1;do {System.out.println(a);}while(a <2 );int b &#61; 1;while(b <2) {System.out.println(b);b&#43;&#43;;}}}
补充说明
break
continue
死循环&#xff1a;也就是循环中的条件永远为true&#xff0c;死循环的是永不结束的循环。例如&#xff1a;while (true)
{}。
嵌套循环&#xff1a;