顺序
语句和语句之间、框与框之间都是从上往下执行的
选择
if单选结构
语法:
if(布尔表达式){
//布尔表达式为true执行的语句
}
例:
import java.util.Scanner;
public class ifDemo01 {
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();
}
}
if双选结构
语法:
if(布尔表达式){
//布尔表达式为true执行的语句
}else{
// 布尔表达式为false执行的语句}
例:
import java.util.Scanner;
public class IfDemo02 {
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多选择结构
语法:
if(布尔表达式1){
//布尔表达式1为true执行的语句
}else if(布尔表达式2){
// 布尔表达式2为ture执行的语句}
else if(布尔表达式3){
//布尔表达式3为true执行的语句
}else{
以上表达式均不为true时执行的语句
}
例:
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
//60分以下不及格,60-70及格,70-80中等,80-90良好,90-100优秀
Scanner scanner = new Scanner(System.in);
System.out.println("请输入分数");
int score = scanner.nextInt();
if (score>=0 && score<60){
System.out.println("不及格");
}else if (score>=60 && score < 70){
System.out.println("及格");
}else if (score>=70 && score < 80){
System.out.println("中等");
}else if (score>=80 && score < 90){
System.out.println("良好");
}else if (score>=90 && score <= 100){
System.out.println("优秀");
}else {
System.out.println("成绩不合法");
}
scanner.close();
}
}
嵌套的if结构
语法:
if(布尔表达式1){
//布尔表达式1为true执行的语句
} if(布尔表达式2){
// 布尔表达式2为ture执行的语句}
switch多选择结构
switch case语句判断一个变量与一系列值中的某个值是否相等,每个值为一个分支。switch中的变量类型可以是byte、short、int、char和string;但是case常量处的value必须为字符串常量或字面量
语法:
switch(表达式){
case value:
//语句
break;//可选
case value:
//语句
break;//可选
//case的数量任意
default://可选
//语句
}
例1:
import java.util.Scanner;
public class SwitchDemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//分数
char grade = 'C';
/*case穿透:
该例中,如果C后面没有break;,则输出中等后会输出D对应的等级
如果C后面有,D后面没有,只会输出C对应的等级,不会输出E对应的等级
但如果C、D、E后都没有break;则会输出中等、及格、不及格、等级不存在,四个均会出现。
*/
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("等级不存在");
}
scanner.close();
}
}
例2:
//JDK7的新特性,表达式结果可以是字符串
import java.util.Scanner;
public class WwitchDemo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = "fighting";
switch (name){
case "fight":
System.out.println("错误");
break;
case "fighting":
System.out.println("bingo");
break;
default:
System.out.println("未找到");
}
scanner.close();
}
}
反编译
file→project structure→下图→找到文件位置,并打开该位置,即可找到对应文件的class文件(将该文件放到src中的对应Java文件一起,用IDEA打开文件夹的方式打开该文件(拖动到IDEA界面中))就可以看到反编译的文件了。
循环
while
语法:
while(布尔表达式1){
//循环内容
}
例:
import java.util.Scanner;
public class WhileDemo01 {
public static void main(String[] args) {
//输出1-100
int i= 1;
while (i<=100){
System.out.println(i);
i++;
}
}
}
do…while
语法:
do{
//代码语句
}while(布尔表达式);
和while的区别:while是先判断后执行,do…while是先执行后判断,保证代码一定会执行一次。
例:
public class DoWhileDemo01 {
public static void main(String[] args) {
int i = 0;
int num = 0;
do {
num = num + i;
i++;
}while (i<=100);
System.out.println(num);//5050
}
}
for
java5中引入了一种用于数组的增强型for循环
语法:
//初始化可以是空语句
for(初始化;布尔表达式;更新){
//代码语句
}
输入100.for回车自动生成:
for (int i = 0; i < 100; i++) {
}
例:
public class ForDemo01 {
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);
}
}
例:
public class ForDemo02 {
public static void main(String[] args) {
//输出100以内能被5整除的数,每行三个
for (int i = 0; i < 100; i++) {
if (i%5==0){
System.out.print(i+"\t");//空格println会自动换行
}
if (i%15==0){
System.out.print("\n");
//或者System.out.println();
}
}
}
}
例:
//打印九九乘法表
public class ForDemo03 {
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)+"\t");
}
System.out.println();
}
}
}
增强for循环
主要针对数组和集合
语法:
for(声明语句:表达式){
//语句
}
例:
public class ForDemo04 {
public static void main(String[] args) {
int[] numbers = {1,2,3,4,5};//定义一个数组
for (int i=0;i<5;i++){
System.out.println(numbers[i]);
}
System.out.println("============");//分割线
//遍历数组中的元素,效果和上面的for循环类似
for (int x:numbers){
System.out.println(x);
}
}
}