顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多 数的代码都是这样执行的。
public class Sun{
public static void main(String[] rags){
System.out.println("语句A");
System.out.println("语句B");
System.out.println("语句c");
}
}
if循环
- 格式一
格式:
if (关系表达式)
{ 语句体; }
public class IfDemo{
public static void main(String[] args){
System.out.println("开始");
//定义变量
int a = 10;
int b = 20;
//需求:判断a和b的值是否相等,如果相等,就在控制台输出:a等于b
if(a == b){
System.out.println("a等于b");
}
//需求:判断a和c的值是否相等,如果相等,就在控制台输出:a等于c
int c = 10;
if(a == c){
System.out.println("a等于c");
}
System.out.println("结束");
}
}
// 运行结果:开始 a等于c 结束
- 格式二
格式:
if (关系表达式) {
语句体1;
} else {
语句体2; }
import java.unit.Scanner;
public class IfDome2{
public static void main(String[] rags){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int number = sc.nextInt();
//判断整数是偶数还是奇数要分两种情况进行判断,使用if..else结构
//判断是否偶数需要使用取余运算符实现该功能 number % 2 == 0
//根据判定情况,在控制台输出对应的内容
if(number%2 == 0){
System.out.println(number + "是偶数");
}else{
System.out.println(number + "是奇数");
}
}
}
- 格式三
import java.util.Scanner;
public class IfDome3{
public static void main(String[] rags){
System.out.print("开始");
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个星期数字(1-7):");
int week = sc.nextInt();
if(week == 1){
System.out.println("星期一");
} else if(week == 2){
System.out.println("星期二");
} else if(week == 3){
System.out.println("星期三");
} else if(week == 4){
System.out.println("星期四");
} else if(week == 5){
System.out.println("星期五");
} else if(week == 6){
System.out.println("星期六");
} else if(week == 7){
System.out.println("星期天");
}
System.out.println("结束");
}
}
import java.util.Scanner;
public class IfDemo5{
public static void main(String[] rags){
Scanner sc = new Scanner(System.in);
System.out.println("请输入分数");
int a = sc.nextInt();
if (a >100 || a<0){
System.out.println("分数错误");
}else if (a < 60){
System.out.println("礼物是:一套练习册");
} else if(a >= 60 && a <=80){
System.out.println("礼物是:新故事书");
} else if(a >80 && a<=90){
System.out.println("礼物是:游戏机");
} else if(a >90 && a<=100){
System.out.println("新电脑");
}
System.out.println("结束");
}
}
switch语句
switch (表达式) {
case 1:
语句体1;
break;
case 2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
注意:如果switch中的case,没有对应break的话,则会出现case穿透的现象。 (穿透,即此case 下没有break,会继续运行,直到有break的地方结束,会将中间经历没break的case 结果全输出来-含最后一个break结果)
import java.util.Scanner;
public class SwitchDemo1{
public static void main(String[] rags){
Scanner sc = new Scanner(System.in);
System.out.println("请输入月份");
int a = sc.nextInt();
switch (a){
case 3:
case 4:
case 5:
System.out.println("春");
break;
case 6:
case 7:
case 8:
System.out.println("夏");
break;
case 9:
case 10:
case 11:
System.out.println("秋");
break;
case 12:
case 1:
case 2:
System.out.println("冬");
break;
default:
System.out.print("输入季节错误");
break;
}
}
}
for循环结构
循环: 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句, 当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直 执行下去,形成死循环。
for (初始化语句;条件判断语句;条件控制语句) {
循环体语句; }
public class ForDemo{
public static void main(String[] rags){
for(int i = 1;i<=5;i++){
System.out.println(i);
}
System.out.println("------------");
for(int i = 5;i>=1;i--){
System.out.println(i);
}
}
}
public class ForDemo3{
public static void main(String[] rags){
int j = 0;
for(int i = 1; i<=5;i++){
j+=i;
}
System.out.println(j);
}
}
求1-100之间的偶数和,并把求和结果在控制台输出
public class ForDemo4{
public static void main(String[] rags){
int j = 0;
for (int i=1;i<=100;i++){
if (i%2 ==0){
j += i;
}
}
System.out.println("1-100的偶数和:" + j);
}
}
/*
需求:在控制台输出所有的“水仙花数”,统计“水仙花数”一共有多少个,并在控制台输出个数
水仙花数的个位、十位、百位的数字立方和等于原数
*/
public class exercisesFor4 {
public static void main(String[] args) {
int ge = 0;
int shi = 0;
int bai = 0;
int count = 0;
for(int i =100;i<= 1000;i++){
ge = i%10;
shi = i/10%10;
bai = i/10/10%10;
if(ge*ge*ge+shi*shi*shi+bai*bai*bai == i){
System.out.println(i);
count ++;
}
}
System.out.println(count);
}
}
while语句
初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句; }
public class WhileDemo1{
public static void main(String[] rags){
//需求:在控制台输出5次"HelloWorld"
for(int i = 1;i<=5;i++)
System.out.println("helloWord");
System.out.println("while循环语句:");
int j = 1;
while(j<=5){
System.out.println("HelloWord");
j ++;
}
}
}
/*
public class WhileDemo2{
public static void main(String[] rags){
double i =0.1;
int count = 0;
int zf = 8844430;
while(i<=zf){
i *= 2 ;
count ++;
}
System.out.println("需要折叠的次数:" + count);
}
}
*/
public class WhileDemo2{
public static void main(String[] args) {
//定义一个计数器,初始值为0
int count = 0;
//定义纸张厚度
double paper = 0.1;
//定义珠穆朗玛峰的高度
int zf = 8844430;
//因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环
//折叠的过程中当纸张厚度大于珠峰就停止了,因此继续执行的要求是纸张厚度小于珠峰高度
while(paper <= zf) {
//循环的执行过程中每次纸张折叠,纸张的厚度要加倍
paper *= 2;
//在循环中执行累加,对应折叠了多少次
count++;
}
//打印计数器的值
System.out.println("需要折叠:" + count + "次");
}
}
do…while循环结构
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
public class WhileDemo3{
public static void main(String[] rags){
int i = 1;
while(i<=5){
System.out.println("HelloWorld");
i ++;
}
System.out.println("--------------");
int j = 1;
do {
System.out.println("HelloWorld");
j++;
}while(j<=5);
}
}
三种循环的区别
-
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
-
do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for循环和while的区别 :
- 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访 问到了
- 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变 量还可以继续使用
死循环(无限循环)的三种格式 :
-
for( ; ; ){}
-
while(true){}
-
do {} while(true);
跳转控制/循环语句
跳转控制语句(break)
- 跳出循环,结束循环 ;直接结束当前的整个循环
跳转控制语句(continue)
- 跳过本次循环,继续下次循环
注意: continue只能在循环中进行使用!
public class WhileDemo4{
public static void main(String[] rags){
for(int i=1;i<=5;i++){
if(i%2 == 0){
continue; // 输出 1,3,5
//break; // 输出 1
}
System.out.println(i);
}
}
}
循环嵌套
循环嵌套概述:在循环中,继续定义循环
请反复理解这句话(整个内循环,就是外循环的一个循环体,内部循环体没有执行完毕,外循环是不会 继续向下执行的)
外循环执行一次,内循环执行一圈
public class WhileDemo5{
public static void main(String[] rags){
for(int i=1;i<=12;i++){
for(int j = 1;j<=60;j++){
System.out.println(i+ "小时" + j + "分钟");
}
System.out.println("------------------");
}
}
}