程序中没有其他的结构,按照代码的先后顺序,依次执行程序中的大多数代码。流程如下:
开始 =》语句A =》语句B =》语句C=》结束。
package dreamcode;
public class snow1 {
public static void main(String[] args) {
System.out.println('A'); // A
System.out.println('B'); // B
System.out.println('C'); // C
}
}
顺序结构就是按照代码从上到下的顺序依次执行。
根据判定的结果(真或假)决定执行某个分支的代码。
if分支有三种格式:
格式一:
if (条件表达式){
语句体;
}
eg:
package dreamcode;
public class xuanze {
public static void main(String[] args) {
int hearBeat =70;
if(hearBeat>60 || hearBeat<120){
System.out.println("你的心跳数据是:"+hearBeat+",指标属于正常,"); // 你的心跳数据是:70,指标属于正常,
}
System.out.println("测试结束"); //测试结束
}
}
格式二:
if(条件表达式){
语句体1;
}else{
语句体2;
}
eg:
package dreamcode;
public class xuanze {
public static void main(String[] args) {
int money = 5999;
if(money>=1314){
System.out.println("您当前发送成功~~~"); // 您当前发送成功~~~
}else {
System.out.println("您自己都没钱,就别发了~~~");
}
}
}
格式三:
if(条件表达式1){
语句体1;
}else if(条件表达式2){
语句体2;
}else if(条件表达式3){
语句体3;
}
...
else{
语句体n+1;
}
eg:
package dreamcode;
public class xuanze {
public static void main(String[] args) {
int score = 99;
if(score >= 0 && score < 60){
System.out.println("很遗憾你的成绩不及格!");
}else if(score >= 60 && score < 90){
System.out.println("恭喜你的成绩及格了!");
}else if(score >= 90 && score < 100){
System.out.println("恭喜你获得很优秀的成绩!"); // 恭喜你获得很优秀的成绩!
}else {
System.out.println("你的成绩有误");
}
}
}
匹配条件去执行分支,适合做值匹配的分支选择,结构清晰,格式良好。
执行流程:
switch(表达式){
case 值1:
执行代码...;
break;
case 值2:
执行代码...;
break;
...
case 值n-1:
执行代码...;
break;
default:
执行代码n;
}
package xuanze;
public class swjiegou {
public static void main(String[] args) {
String weekday = "周二";
switch (weekday) {
case "周一":
System.out.println("埋头苦干,解决bug");
break;
case "周二":
System.out.println("请求大牛程序员帮忙"); // 请求大牛程序员帮忙
break;
case "周三":
System.out.println("今晚啤酒、龙虾、小烧烤");
break;
case "周四":
System.out.println("主动帮助新来的程序员解决bug");
break;
case "周五":
System.out.println("今晚吃鸡");
break;
case "周六":
System.out.println("旅游");
break;
case "周日":
System.out.println("郁郁寡欢,准备上班");
break;
default:
System.out.println("数据有误!");
}
}
}
switch分支注意事项:
switch的穿透性:
如果代码执行到没有写break的case块,执行完后将直接进入下一个case块执行代码(而且不会进行任何匹配),直到遇到break才跳出分支,这就是switch的穿透性。
switch穿透性结构表达:
switch(表达式){
case 值1:
执行代码1;
case 值2:
执行代码2;
...
case 值n-1:
执行代码n-1;
break;
default:
执行代码 n;
}
eg:
package xuanze;
import java.time.Month;
public class swct {
public static void main(String[] args) {
int manth = 7;
switch (manth){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(manth+"是31天!"); // 7是31天!
break;
case 2:
System.out.println(manth+"闰年为29天,非闰年为是28天!");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(manth+"是30天!");
break;
default:
System.out.println("数据有误!");
}
}
}
for(初始化语句;循环条件;迭代语句){
循环体语句(重复执行的代码);
}
package xunhuan;
public class fxunhuan {
public static void main(String[] args) {
for(int i=0; i<3; i++){
System.out.println("Hello World"); // Hello World Hello World Hello World
}
}
}
package xunhuan;
public class fxunhuan {
public static void main(String[] args) {
int sum=0;
for(int i=1; i<=5; i++){
sum+=i;
}System.out.println("1-5的和是:"+sum); // 1-5的和是:15
}
}
package xunhuan;
public class fxunhuan {
public static void main(String[] args) {
int sum=0;
for(int i=1; i<=10; i++){
if(i % 2 == 1){
sum+=i;
}
}
System.out.println("1-10的奇数和是:"+sum); // 1-10的奇数和是:25
}
}
法二:
package xunhuan;
public class fxunhuan {
public static void main(String[] args) {
int sum=0;
for(int i=1; i<=10; i+=2){
sum+=i;
}
System.out.println("1-10的奇数和是:"+sum); // 1-10的奇数和是:25
}
}
package xunhuan;
public class fxunhuan {
public static void main(String[] args) {
for(int i=100; i<=999; i++){
if(((i%10)*(i%10)*(i%10)+(i%100/10)*(i%100/10)*(i%100/10)+(i/100)*(i/100)*(i/100)) == i){
System.out.println(i); // 153 370 371 407
}
}
}
}
初始化语句;
while (循环条件){
循环体语句(被重复执行的代码);
迭代语句;
}
package xunhuan;
public class wlxh {
public static void main(String[] args) {
int i = 0;
while (i<3){
System.out.println("Hello Word"); // Hello Word Hello Word Hello Word
i++;
}
}
}
package xunhuan;
public class wleg {
public static void main(String[] args) {
double peakHeight = 8848860;
double paperThickness = 0.1;
int count = 0;
while (paperThickness < peakHeight){
count ++;
paperThickness += paperThickness;
}
System.out.println("折叠次数:"+count); // 折叠次数:27
}
}
初始化语句;
do {
循环体语句;
迭代语句;
}while(循环条件);
package xunhuan;
public class dowl {
public static void main(String[] args) {
int i = 0;
do{
System.out.println("Hello Word");
i++;
}while (i<3); // Hello Word Hello Word Hello Word
}
}
// 第一种方式
for (;;){
System.out.println("Hello World");
}
// 第二种方式 经典做法
while (true){
System.out.println("Hello World");
}
// 第三种方式
do{
System.out.println("Hello World");
}while (true);
package xunhuan;
import java.util.Scanner;
public class dowl {
public static void main(String[] args) {
int okPassword = 520;
Scanner sc = new Scanner(System.in);
while (true){
System.out.println("请您输入正确的密码:");
int password = sc.nextInt();
if(password == okPassword){
System.out.println("登录成功了!");
break;
}else {
System.out.println("密码错误!");
}
}
}
}
package xunhuan;
public class qtxh {
public static void main(String[] args) {
for (int i = 0; i <3 ; i++) {
for (int j = 0;j<5;j++){
System.out.println("我爱你!");
}
}
}
}
package xunhuan;
public class qtxh {
public static void main(String[] args) {
for (int i = 0; i <4; i++) {
for (int j = 0;j<5;j++){
System.out.print("*");
}
System.out.println();
}
}
}
package xunhuan;
public class qtxh {
public static void main(String[] args) {
for (int i = 1; i <=9; i++) {
for (int j = 1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+" ");
}
System.out.println();
}
}
}
package xunhuan;
public class guanjianzi {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println("快乐星球"+i); // 快乐星球0 快乐星球1 快乐星球2
if(i == 2){
break;
}
}
for (int j = 0; j <= 5 ; j++) {
if(j==3){
continue;
}
System.out.println("快乐地球"+j); // 快乐地球0 快乐地球1 快乐地球2 快乐地球4 快乐地球5
}
}
}
package shuijishu;
import java.util.Random;
public class suijisu {
public static void main(String[] args) {
Random r = new Random();
int number = r.nextInt(10);
System.out.println("随机数生成了:"+number);
}
}
- 随机生成一个1-100之间的数据,提示用户猜测,猜大提示过大,猜小提示过小,直到猜中结束游戏。
package shuijishu;
import java.util.Random;
import java.util.Scanner;
public class youxi {
public static void main(String[] args) {
int min = 1;
int max = 100;
Random r = new Random();
Scanner sc = new Scanner(System.in);
while (true){
System.out.println("请您输入"+min+"-"+max+"中猜测的数字:");
int sjs = min + (int)(Math.random() * (max-min+1));
int sz = sc.nextInt();
if(sz < max && sz > min){
if(sjs==sz){
System.out.println("恭喜你猜对了!");
break;
}else if(sz<sjs){
System.out.println("很遗憾请从新猜测!");
min = sz;
}else{
System.out.println("很遗憾请从新猜测!");
max = sz;
}
}else {
System.out.println("请输入合法猜测数!");
}
}
}
}