1.顺序结构
System.out.println("aaa"); System.out.println("bbb"); System.out.println("ccc"); //运行结果 aaa bbb ccc
如果调整代码的书写顺序, 则执行顺序也发生变化
System.out.println("aaa"); System.out.println("ccc"); System.out.println("bbb"); // 运行结果 aaa ccc bbb
2.分支结构
2.1 if语句
基本语法形式1
if(布尔表达式){ 语句块1; }else{ 语句块2; } //如果表达式为真,则执行语句块1.否则执行语句块2
基本语法形式2
if(布尔表达式){ 语句块1; } //如果表达式为真,则执行语句块1
基本语法形式3
if(布尔表达式1){ 语句块1; }else if(布尔表达式2){ 语句块2; }else{ 语句块3; } //如果表达式1为真。执行语句块1;语句块2为真,执行语句块2;否则执行语句块三
2.2 switch语句
switch(整数|枚举|字符|字符串){ case 内容1 : { 内容满足时执行语句; [break;] } case 内容2 : { 内容满足时执行语句; [break;] } ... default:{ 内容都不满足时执行语句; [break;] } }
3.循环结构
循环结构: while 、 for 、 do while()
循环就是重复的做一件事情
3.1while循环
基本语法格式: while(布尔表达式){ 语句块; }//如果布尔表达式为真,则执行语句块
代码示例1:打印 1-10 的数字
public static void main(String[] args) { int i = 1;//循环初始条件 while (i <= 10){//循环判断条件 System.out.println(i); i++;//循环改变条件 } }
代码示例2:打印 1-10 的数字
public static void main(String[] args) { int a = 0; int sum = 0; while(a<=100){ sum = sum + a; a++; } System.out.println(sum); }
出现死循环的原因:判断条件永远为真
3.2 break
break的功能是让循环提前结束
代码示例:找到 100 - 200 中所有 3 的倍数
public static void main(String[] args) { int i = 1; while(i <= 10){ if(i % 3 == 0){ System.out.println(i); break; } i++; } }
3.3 continue
continue的功能是跳过这次循环,立即进入下次循环
代码示例:找到 100 - 200 中所有 3 的倍数
public static void main(String[] args) { int i = 100; while(i <= 200){ if(i % 3 != 0){ i++; continue; } System.out.println(i); i++; } } //执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句
3.4 for循环
基本语法:
for(表达式1;表达式2;表达式3){ 语句块; } //表达式1:用于初始化循环变量 //表达式2:循环条件,一定是布尔表达式 //表达式3:更新循环变量
代码示例:打印1-10的数字
public static void main(String[] args) { for (int i = 1; i <= 10 ; i++) { System.out.println(i); } }
代码示例:计算5的阶乘的和
public static void main(String[] args) { int sum = 0; for (int j = 1; j <= 5; j++){ int ret = 1; for(int i = 1; i <= j; i++){ ret = ret * i; } sum += ret; } System.out.println(sum); }
3.5 do while循环
基本语法
do{ 循环语句; }while(循环条件); //先执行循环语句, 再判定循环条件
代码示例:打印haha
int i = 0; do{ System.out.println("haha"); }while(i != 0); //运行结果: haha
至少会被执行一次
代码示例:打印 1 - 10
int num = 1; do { System.out.println(num); num++; } while (num <= 10)
4.输入输出
4.1输出到控制台
基本语法:
System.out.println(10); // 输出一个字符串, 带换行 System.out.print(10); // 输出一个字符串, 不带换行 System.out.printf(%d/n, 50); // 格式化输出
println 输出的内容自带 \n, print 不带 \n
4.2从键盘输入
import java.io.IOException; // 需要导入 IOException 包 try { System.out.print("Enter a Char:"); char i = (char) System.in.read(); System.out.println("your char is :"+i); } catch (IOException e) { System.out.println("exception"); } //这种方式比较麻烦, 我们不推荐使用.
使用 Scanner 读取字符串/整数/浮点数
import java.util.Scanner; // 需要导入 util 包 Scanner sc = new Scanner(System.in); System.out.println("请输入你的姓名:"); String name = sc.nextLine(); System.out.println("请输入你的年龄:"); int age = sc.nextInt(); System.out.println("请输入你的工资:"); float salary = sc.nextFloat(); System.out.println("你的信息如下:"); System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary); sc.close(); // 注意, 要记得调用关闭方法
代码示例:
public static void main(String[] args) { Scanner scan = new Scanner(System.in);//h int a = scan.nextInt(); System.out.println("这是一个整数: "+a); String name = scan.nextLine(); System.out.println("姓名是:"+name); }
4.3循环输入
public static void main(String[] args) { Scanner scan = new Scanner(System.in); //crtl+d结束进程 while(scan.hasNext()){ int n = scan.nextInt(); System.out.println("整数是: "+n); } }
运行结果:
5.猜数字游戏
游戏规则:
系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低 了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了" .
代码示例:
public static void main(String[] args) { Random random = new Random();//电脑随机生成数字 int randNum = random.nextInt(100)+1;//[1,101) Scanner scan = new Scanner(System.in); while(true){ System.out.println("请输入你要猜的数字[1-100]: "); int num = scan.nextInt(); if(num < randNum){ System.out.println("低了"); }else if(num ==randNum){ System.out.println("找到了"); break;//非常重要 }else{ System.out.println("高了"); } } }
运行结果:
请输入你要猜的数字[1-100]: 50 低了 请输入你要猜的数字[1-100]: 70 高了 请输入你要猜的数字[1-100]: 60 低了 请输入你要猜的数字[1-100]: 65 高了 请输入你要猜的数字[1-100]: 63 高了 请输入你要猜的数字[1-100]: 62 高了 请输入你要猜的数字[1-100]: 61 找到了 Process finished with exit code 0