Java流程控制结构体学习
ShunXuDemo
package com.yuan.struct;
public class ShunXuDemo {
public static void main(String[] args) {
//顺序结构
System.out.println("hello1");
System.out.println("hello2");
System.out.println("hello3");
System.out.println("hello4");
System.out.println("hello5");
}
}
IfDemo1
package com.yuan.struct;
import javax.xml.transform.Source;
import java.util.Scanner;
public class IfDemo1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String s = scanner.nextLine();
//equals:判断字符串是否相等
if (s.equals("Hello")){ //如果字符串是Hello
System.out.println(s);
}
System.out.println("End");
scanner.close();
}
}
IfDemo2
package com.yuan.struct;
import java.util.Scanner;
public class IfDemo2 {
public static void main(String[] args) {
//开始分数大于60分及格,小于60分不及格
Scanner scanner = new Scanner(System.in);
//一旦其中一个else if语句为true,其他的 else if和 else语句都跳过执行
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if(score==100){
System.out.println("恭喜满分");
}else if(score>=90 && score<100){
System.out.println("A级");
}else if(score>=80 && score<90){
System.out.println("B级");
}else if(score>=70 && score<80){
System.out.println("C级");
}else if(score>=60 && score<70){
System.out.println("D级");
}else if(score>=0 && score<60){
System.out.println("不及格");
}else{
System.out.println("成绩不合法");
}
scanner.close();
}
}
SwitchDemo1
package com.yuan.struct;
public class SwitchDemo1 {
public static void main(String[] args) {
//case穿透
char grade = 'C';
//shift+Tab取消缩进
switch (grade){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("及格");
break;
case 'D':
System.out.println("再接再厉");
break;
case 'E':
System.out.println("挂科");
break;
default:
System.out.println("未知等级");
}
}
}
/*
从JavaSE 7开始,switch支持字符串String类型了
*/
SwitchDemo2
package com.yuan.struct;
public class SwitchDemo2 {
public static void main(String[] args) {
String name = "请将";
//jdk7以后才支持,表达式的结果可以是字符串
//字符的本质还是数字
//反编译 Java --- class(字节码文件)(IDEA)
switch (name){
case "请将":
System.out.println("请将");
break;
case "狂神":
System.out.println("狂神");
break;
default:
System.out.println("你干嘛~");
}
}
//可以在Project Structure里面找到编译完对应的class文件
//反编译是将该Java文件编译生成的class直接通过Windows放在IDEA的文件夹里打开
}
WhileDemo1
package com.yuan.struct;
public class WhileDemo1 {
public static void main(String[] args) {
//输出1-100
int i = 0;
//我们大多数情况下是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。
while (i<100){
i++;
System.out.println(i);
}
}
}
WhileDemo2
package com.yuan.struct;
public class WhileDemo2 {
public static void main(String[] args) {
//死循环
while (true){
//等待客户端连接
//定时检查
//……
}
}
}
WhileDemo3
package com.yuan.struct;
public class WhileDemo3 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while(i<=100){
sum = sum + i;
i++;
}
System.out.println(sum);
}
}
DoWhileDemo1
package com.yuan.struct;
public class DoWhileDemo1 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
do{
sum = sum +i;
i++;
}while (i<=100);
System.out.println(sum);
}
}
//while是先判断后执行,do-while是先执行后判断。
//do-while保证循环体至少会被执行一次。
DoWhileDemo2
package com.yuan.struct;
public class DoWhileDemo2 {
public static void main(String[] args) {
int a = 0;
while(a<0){
System.out.println(a);
a++;
}
System.out.println("===================");
do {
System.out.println(a);
a++;
}while(a<0);
}
}
ForDemo1
package com.yuan.struct;
public class ForDemo1 {
public static void main(String[] args) {
int a = 1;
while(a<=100){//条件判断
System.out.println(a);//循环体
a = a + 2;//迭代
}
System.out.println("while循环结束");
//初始化//条件判断//迭代
for (int i=1;i<=100;i++){
System.out.println(i);
}
System.out.println("for循环结束");
}
}
/*
for循环快捷键:100.for
for (int i = 0; i < 100; i++) {
}
关于for循环的说明:
1.最先执行初始化步骤,可以声明一种类型,可以初始化一个或多个循环控制变量,也可以是空语句
2.检测bool表达式的值,如果为true执行,如果为false循环终止
3.执行一次循环之后,更新循环控制变量
4.再次检测bool表达式,循环执行上面的过程
死循环:
for ( ; ; ){ }
*/
ForDemo2
package com.yuan.struct;
public class ForDemo2 {
public static void main(String[] args) {
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);
System.out.println("偶数的和:"+evensum);
}
}
ForDemo3
package com.yuan.struct;
public class ForDemo3 {
//输出1-1000能被5整除的数,每行输出3个
public static void main(String[] args) {
for (int i = 0; i <= 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if(i%(5*3)==0){
System.out.print("\n");
}
}
//println 输出完会换行
//print 输出完不会换行
}
}
ForDemo4
package com.yuan.struct;
public class ForDemo4 {
public static void main(String[] args) {
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
ForDemo5
package com.yuan.struct;
public class ForDemo5 {
public static void main(String[] args) {
int[] numbers = {10,20,30,40,50};//定义了一个数组
for(int i = 0; i<5;i++){
System.out.println(numbers[i]);
}
System.out.println("==========");
//遍历数组的元素
for(int x:numbers){
System.out.println(x);
}
}
}
/*
Java5引入的一种用于数组或集合的增强型for循环
*/
BreakDemo
package com.yuan.struct;
public class BreakDemo {
public static void main(String[] args) {
int i = 0;
while(i<100){
i++;
System.out.println(i);
if(i==30){
break;
}
}
}
}
//break也可以在Switch语句中使用,强行退出循环
ContinueDemo
package com.yuan.struct;
public class ContinueDemo {
public static void main(String[] args) {
int i = 0;
while(i<100){
i++;
if(i%10==0){//跳过了10的倍数
System.out.println();
continue;//跳过本次循环
}
System.out.print(i+"\t");
}
}
}
TextDemo
package com.yuan.struct;
public class TextDemo {
public static void main(String[] args) {
//打印三角形 5行
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();
}
}
}