顺序结构
选择结构
if选择结构
if单选择结构
代码展示:
package com.kuang.struct;
import java.util.Scanner;
//选择结构 if语句
public class IfDemon01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String s = scanner.nextLine();
//equals 判断字符串是否相等 少用==
if (s.equals("Hello")) {//比较字符串是否一致 不能用==
System.out.println(s);
}
System.out.println("End");
scanner.close();
}
}
结果:
输入的内容与Hello相同则输出Hello,并且显示End运行结束;不相同则直接End,运行结束。
if双选择结构
package com.kuang.struct;
import java.util.Scanner;
//if双选型结构
public class Demo02 {
public static void main(String[] args) {
//考试分数大于60是及格,小于60就不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if (score>60){
System.out.println("及格");
}else {
System.out.println("不及格");
}
scanner.close();
}
}
if多选择型结构
package com.kuang.struct;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
/**
* if 语句至多有 1 个else语句,else语句在else if语句之后
* if 语句可以若干个else if 语句,他们必须在else语句之前
* 一旦其中一个 else if 语句检测为 true,其他的else if 以及 else语句都将跳过执行
*/
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if (score==100){
System.out.println("恭喜满分!");
}else if(score<100 && score>=90){
System.out.println("A级");
}else if (score<90 && score>=80){
System.out.println("B级");
}else if (score<80 && score>=70){
System.out.println("C级");
}else if (score<70 && score>=60){
System.out.println("D级");
}else if (score<60 && score>=0){
System.out.println("成绩不合格");
}else {
System.out.println("成绩不合法");
}
scanner.close();
}
}
-
嵌套的if结构
例如:1-100可以分为 1-50和50-100 提高效率
switch多选择结构
可选 可以不要
字符的比较
package com.kuang.struct;
public class SwitchDemo01 {
public static void main(String[] args) {
//case穿透 如果不写break会把后面的都输出
//switch 匹配一个值
char garde = 'C';//注意大小写
switch (garde){
case 'A'://注意大小写
System.out.println("优秀");
break;//每次写完case;记得加break
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("及格");
break;
case 'D':
System.out.println("再接再厉");
break;
case 'E':
System.out.println("挂科");
default://如果不在ABCDE的范围内则输出“未知”
System.out.println("未知");
}
}
}
字符串的比较
package com.kuang.struct;
//字符串
public class SwitchDemo02 {
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("弄啥");
}
}
}
循环结构
while 循环
-
代码
package com.kuang.struct; //while 循环 public class WhileDemo01 { public static void main(String[] args) { //输出1-100 int i = 0; while (i<100){ i++; System.out.println(i); } } }
-
while循环,1-100相加,代码:
package com.kuang.struct; public class WhileDemo03 { public static void main(String[] args) { //计算1+2+3+..+100=? int i = 0; int sum = 0; while (i<=100){ sum = sum + i; i++; } System.out.println(sum); } }
do…while循环
-
代码
package com.kuang.struct; //do..while循环 public class DoWhileDemo01 { public static void main(String[] args) { int i = 0; int sum = 0; do { sum = sum + i; i++; }while (i<=100); System.out.println(sum); } }
do while 和 while 的区别
package com.kuang.struct;
//while和do..while的区别
//while 先判断后执行;do while 先执行后判断,至少执行一次
public class DoWhileDemo02 {
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);
}
}
运行结果:
for 循环
支持迭代的通用结构,最有效、最灵活
-
代码
package com.kuang.struct; public class ForDemo01 { public static void main(String[] args) { int a = 1;//初始化条件 while (a<=100){//条件判断 System.out.println(a);//循环体 a+=2;//迭代 每一次循环会使a的值刷新,最后会使得while循环终止 } System.out.println("while循环结束!"); //条件判断;循环体;迭代 for (int i=1;i<=100;i++){ System.out.println(i); } System.out.println("for循环结束!"); /* 关于for 循环有以下几点说明: 最先执行初始化步骤,可以声明一种类型,单可初始化一个或多个循环控制变量,也可以是空语句。 然后,检测不二表达式的值,如果为true,循环体被执行,如果为false,循环停止,开始执行循环体后面的语句 执行一次循环后,更新循环控制变量(迭代银子控制循环变量的增减)。 再次检测布尔表达式,循环执行上面的过程。 */ //死循环 for (;;){ } } }
-
练习1:计算0-100之间的技术和偶数的和
package com.kuang.struct; public class ForDemo02 { public static void main(String[] args) { //练习:计算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); System.out.println("偶数的和:"+evenSum); } }
-
用for循环输出1-1000之间能被5整除的数,并且每三个数字换行
package com.kuang.struct; public class ForDemo03 { public static void main(String[] args) { //练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个 for (int i = 0; i <= 1000; i++) { if (i%5==0){ System.out.print(i+"\t"); } if (i%(5*3)==0){//每三行 System.out.println(); //System.out.print("\n"); } } //println 输出完全换行 //print 输出完不会换行 } }
-
用while循环输出1-1000之间能被5整除的数,并且每三个数字换行
package com.kuang.struct; //用while 输出1-1000被5整除的数并且每三个数换行 public class TestWhile02 { public static void main(String[] args) { int a = 1;//初始化 从1开始 // int count=0;//用于计算输出个数,便于换行 while (a<=1000){ if (a%5==0){//判断是都被5整除 System.out.print(a+"\t");//如果能被5整除,输出,并且空格 // count++; } // if (count%3==0){//如果输出了三个数,则换行 // System.out.println(); if (a%(5*3)==0){ System.out.println(); } a++; } System.out.println(); } }
九九乘法表
package com.kuang.struct;
//99乘法表
public class ForDemo04 {
public static void main(String[] args) {
//1.打印第一列
//2.把固定的1再用一个循环包起来
//3.去掉重复项,i<=j
//4.调整样式
for (int i = 1; i <= 9; i++) {//总共有9行
for (int j = 1;j <= i;j++){//i行j列
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
运行结果:
增强for型
package com.kuang.struct;
//增强for
public class ForDemo05 {
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);
}
}
}
break continue
- break 用于强行退出循环
package com.kuang.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;
}
}
System.out.println();
}
}
-
continue 直接进行下一次循环
package com.kuang.struct; public class ContinueDemo { public static void main(String[] args) { int i = 0; while (i<100){ i++; if (i%10==0){ System.out.println(); continue; } System.out.println(i); } } }
go to
package com.kuang.struct;
//go to
public class LabelDemo {
public static void main(String[] args) {
//打印101-150之间的所有质数
int count = 0;
//不建议使用
outer:for (int i = 101;i<=150;i++){//标签
for (int j = 2;j<=2;j++){
if (i % j==0){
continue outer;
}
}
System.out.print(i+" ");
}
}
}
打印三角形
package com.kuang.struct;
public class TestDemo {
public static void main(String[] args) {
//打印三角形 5行
for (int i = 1; i <= 5; i++) {//5行 外层
for (int j = 5;j >= i;j--){//第一行5个,每行逐渐减少 内层
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();
}
}
}
结果: