Java基础三种基本结构
Posted 程序狒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础三种基本结构相关的知识,希望对你有一定的参考价值。
Java基础三种基本结构
一、顺序结构
顺序结构就是我们最常见的按照顺序从上到下依次执行
package com.struct;
public class ShunXu_Struct {
public static void main(String[] args) {
//struct 结构:学习第一个顺序结构
System.out.println("顺序结构1");
System.out.println("顺序结构2");
System.out.println("顺序结构3");
System.out.println("顺序结构4");
}
}
二、选择结构
If分支
格式:if(条件){业务逻辑}
package com.struct;
import java.util.Scanner;
public class ifDemo03 {
public static void main(String[] args) {
// if多选择结构
Scanner scan = new Scanner(System.in);
System.out.println("请输入你的分数:");
int score = scan.nextInt();
if (score==100){
System.out.println("恭喜满分");
}else if (score<100 && score>=90){
System.out.println("优秀");
}else if (score<90 && score>=80){
System.out.println("良好");
}else if (score<80 && score>=70){
System.out.println("中等");
}else if (score<70 && score>=60){
System.out.println("及格");
}else if (score<60 ){
System.out.println("不及格");
}else {
System.out.println("成绩不合法");
}
scan.close();
}
}
Switch_Case分支
可以通过反编译的信息去查看字节码文件,可以发现Case那个地方是一串式子因为字符的本子就是数字,每个Case后面都要加上break表示当条件满足遍跳出循环,否则会出现case穿透现象。
格式:switch(条件){case1: case2}不同条件的不同结果
package com.struct;
public class switchCase_2 {
public static void main(String[] args) {
//Jdk7以上支持字符串
//字符的本质还是数字
//反编译 java---class(字节码文件) ---反编译(idea)
String name = "大哥";
switch (name){
case "大哥":
System.out.println("我是你大哥");
break;//可选
case "二弟":
System.out.println("我是你二弟");
break;
case "三弟":
System.out.println("我是你三弟");
break;
default://可写可不写
System.out.println("你这是哪国语言???");
}
}
}
三、循环结构
While循环
package com.struct;
public class do_WhileDemo01 {
public static void main(String[] args) {
/**
* while(布尔表达式) {循环内容} 先判断在执行如果条件不满足就不会执行
* while是最基本的循环,只要布尔表达式为true,循环就会一直执行下去
* 大多数情况我们是会让循环停止下来的,这就需要一个让表达式失效的方式结束循环
* 少部分情况需要循环体一直执行,比如服务器的请求响应监听
* 循环条件如果一直为ture就会造成死循环,在正常的业务编程中会影响性能或者程序卡死
*
* 思考如何实现 计算1+2+3+4+5+.....+100=?
*/
int i = 0;
int sum =0;
while (i<=100){
sum = sum + i;
i++;
}
System.out.println(sum);
}
}
Do While循环
package com.struct;
public class do_WhileDemo02 {
public static void main(String[] args) {
/**
* 首先要明白 While 和 do While的区别
* While循环是先判断再执行也就是说如果条件不满足他压根就不会执行
* 但是有时候我们需要即使不满足条件也要执行一次程序
* 最大的区别就是 do While 至少会执行一次
*/
int i = 0;
int sum =0;
do {
sum = sum + i;
i++;
}while (i<=100);
System.out.println(sum);
}
}
While 和 do While的区别
package com.struct;
public class dowhile_And_while {
public static void main(String[] args) {
/**
* 测试一下 While 和 do while的不同
* 可以看出来do{}while(条件)至少执行了一次程序
*/
int a = 0;
// 测试While
while (a<0) {
System.out.println("a");//这一段没有执行
}
System.out.println("================");
do {
a++;
System.out.println(a); //结果 1 可以看出来就算条件不满足也最少执行了一次
}while (a<0);
}
}
For循环
package com.struct;
public class ForDemo01 {
public static void main(String[] args) {
int a = 1 ; //初始化条件
int sum = 0 ;
while (a<=100){//条件判断
System.out.println(a);//循环体
a += 2 ;//迭代
}
System.out.println("While循环结束");
// 初始化值 循环条件 迭代更新
for (int i = 1;i<=100;i++){//循环条件
System.out.println(i);//循环体
sum = sum + i;
}
System.out.println("for循环结束!sum的和为"+sum);
//for 循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构
//快捷方式生成for循环100.for
}
}
For循环小练习
计算0-100之间奇偶数的和
package com.struct;
public class ForDemo02 {
public static void main(String[] args) {
//练习1:计算0到100之间奇数和偶数的和
int oddSum = 0;//奇数的和
int evenSum = 0;//偶数的和
for (int i = 0; i <= 100; i++) {
if (i%2!=0){//奇数
oddSum +=i;
}else {//偶数
evenSum +=i;
}
}
System.out.println("奇数的和是:"+oddSum+"\\n"+"偶数的和是:"+evenSum);
}
}
使用While或for循环输出1-1000之间能被5整数的数,且每行输出3个
package com.struct;
public class ForDemo03 {
public static void main(String[] args) {
//练习2:使用while或for 循环输出1-1000之间能被5整除的数,且每行输出3个
//第一种for循环的实现
for (int i = 0; i <= 1000; i++) {
if (i%5==0){
//被5整除的数
System.out.print(i+"\\t");
}
if (i%(5*3)==0){//5、10、15 以15为整除来换行
//System.out.print("\\n");//换行
System.out.println();//换行
//print()不换行 println()换行
}
}
System.out.println("for循环结束开始while循环练习.....");
// 第二种While循环的方式实现
int a = 0;
while (a<=1000){
a++;
if (a%5==0){
System.out.print(a+"\\t");
}
if (a%(15)==0){
System.out.println();
}
}
System.out.println("while循环结束");
}
}
for循环打印九九乘法表
package com.struct;
public class ForDemo04 {
public static void main(String[] args) {
// 练习三 for循环实现 九九乘法表 嵌套for循环的使用
//1.首先输出一个定式子的1+"*"+i=(1*i) 能够得出一列 以1开头*到9的数值 ===>先写出内循环
//2.把九九乘法表看成1*1 开头的列 2*2开头的列 3*3开头的列
//3.去掉重复值 也可以理解为控制每一行的长度嘛 外循环执行一次内训都要重新执行一遍 所以当i<=j的时候就可以达到效果了
for (int j = 1; j < 10; j++) {
System.out.println();//执行完一次就换行
for (int i = 1; i<=j; i++) {
System.out.print(i+"*"+j+"="+(j*i)+"\\t");
}
}
}
}
打印金字塔
要学会吧困难的问题简单化把他看成是多个三角形的拼接 分成三部分来实现
package com.struct;
public class TestDemo {
public static void main(String[] args) {
// 小结练习 金字塔三角形打印
// 如果理解不了可以进行debug断点测试
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >=i; j--) {//左上角三角形
System.out.print(" ");
}
for (int j =1; j <=i; j++) {//左下角三角形
System.out.print("*");
}
for (int j =1; j <i; j++) {//又下脚小三角形
System.out.print("*");
}
System.out.println();
}
}
}
结果:
*
***
*****
*******
*********
增强for循环
增强for循环其实就是一种方便数组遍历数据的一个循环
package com.struct;
public class ForDemo05_Add {
public static void main(String[] args) {
//增强for循环
int[] numbers = {10,20,30,40,50};//定义一个数组
for (int i =0;i<5;i++){
System.out.println(numbers[i]);
}
System.out.println("普通for循环演示结束开始增强for循环的演示.....");
//增强for循环遍历数组元素
for (int x:numbers){
System.out.println(x);
// numbers里面每一项的值赋值给了int x
}
/*
结果如下:
10
20
30
40
50
普通for循环演示结束开始增强for循环的演示.....
10
20
30
40
50
*/
}
}
四、跳出循环的方式
首先要明白跳出循环的方式宏观来看有三种
- 编辑业务代码让循环条件有ture变为false从而跳出循环
- break;在循环的主体,可以直接跳出循环
- continue;跳出本次循环,但是会对下一次循环继续进行判断,为ture时还是会继续执行
break的使用
package com.struct;
public class BreakDemo {
public static void main(String[] args) {
// break用于强行退出循环,不执行循环中剩余的语句
int a = 0;
int sum = 0;
while (a<100){
a++;
System.out.println(a);
if (a==11){
System.out.println("a=11了兄弟循环要结束了喔!");
break;
}
}
System.out.println("123456你看见我了那我结束循环了");
}
}
continue的使用
package com.struct;
public class ContinueDemo {
public static void main(String[] args) {
/*
continue 语句用在循环语句体中,用于终止某次循环过程,也就是跳过循环体中没有执行的语句
*/
int a =0;
while (a<100){
a++;
if (a%10==0){//可以看出每次满足a%10==0的时候就会跳出本次循环不输出相应结果 但他还是会继续回到While执行下一次的循环
System.out.println();
continue;//if条件满足直接跳回开头while执行下一个while循环条件的判断
}
System.out.print(a+"\\t");
/*结果
1 2 3 4 5 6 7 8 9
11 12 13 14 15 16 17 18 19
21 22 23 24 25 26 27 28 29
31 32 33 34 35 36 37 38 39
41 42 43 44 45 46 47 48 49
51 52 53 54 55 56 57 58 59
61 62 63 64 65 66 67 68 69
71 72 73 74 75 76 77 78 79
81 82 83 84 85 86 87 88 89
91 92 93 94 95 96 97 98 99
*/
}
}
}
以上是关于Java基础三种基本结构的主要内容,如果未能解决你的问题,请参考以下文章