一、分支结构
1.if语句
基本语法形式1
if(布尔表达式){
//条件满足时执行代码
}
基本语法形式2
if(布尔表达式){
//条件满足时执行代码
}else{
//条件不满足时执行代码
}
基本语法形式3
if(布尔表达式){
//条件满足时执行代码
}else if(布尔表达式){//条件满足时执行代码
}else{
//条件都不满足时执行代码
}
目录
public class logic_control {
public static void main1(String[] args) {
int n = 10;
if (n % 2 == 0) {
System.out.println("n 是偶数");
} else {
System.out.println("n 是奇数");
}
}
输出结果:
代码示例2:判断是不是闰年
//普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
//世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
public static void main(String[] args) {
int year = 2021;
if (year % 100 == 0) {
if (year % 400 == 0) {
System.out.println("是闰年");
} else {
System.out.println("不是闰年");
}
} else {
if (year % 4 == 0) {
System.out.println("是闰年");
} else {
System.out.println("不是闰年");
}
}
}
输出结果:
代码示例2:优化
public static void main3(String[] args) {
int year = 2021;
if (year % 100 != 0 && year % 4 == 0 || year % 400 == 0) {
System.out.println("是闰年");
} else {
System.out.println("不是闰年");
}
}
输出结果:
2.switch
代码示例
public static void main(String[] args) {
int a = 1;
switch (a) {//switch( 里面不能是一个复杂的表达式 )
case 1:
break;//注意:switch一定不要忘记break。
//switch的参数不能是小数(float double long boolean)这几个都不行
//能做参数的特殊类型:枚举,字符串
case 2:
break;
default:
break;
}
}
二、循环结构
1.while循环
基本语法格式
while(循环条件){
循环语句;
}
注:循环条件为 true, 则执行循环语句; 否则结束循环.
代码示例:打印1-10的数字
public static void main(String[] args) {
int i = 1;
while (i <= 10) {//判断条件如果永远为真就会出现死循环
System.out.print(i+" ");
i = i + 1;// == i++//改变的条件
}
}
输出结果:
代码示例2:计算1-100的和
public static void main21(String[] args) {
int i=1;
int sum=0;
while(i<=100){
i++;
sum+=i;
}
System.out.println(sum);
}
输出结果:
代码示例3:分别计算1-100中奇数和偶数的和
public static void main(String[] args) {
int i = 1;
int sum = 0;
while (i <= 100) {
sum = sum + i;
i++;
}
System.out.println("总数:" + sum);//需放到循环外面
i = 1;
int sumOdd = 0;
while (i <= 100) {
sumOdd = sumOdd + i;
i += 2;
}
System.out.println("奇数:" + sumOdd);
i = 2;
int sumEve = 0;
while (i <= 100) {
sumEve = sumEve + i;
i += 2;
}
System.out.println("偶数:" + sumEve);
}
输出结果:
代码示例4:求5的阶乘
public static void mul(int n){
int i=1;
int ret=1;
while (i<=n){
ret*=i;
i++;
}
System.out.println(ret);
}
public static void main(String[] args) {
mul(5);
}
输出结果:
代码示例5:求n的阶乘的和
public static void mulSum(int n){
int i=1;
int ret=1;
int sum=0;
while(i<=n){
ret*=i;
sum+=ret;
i++;
}
System.out.println(sum);
}
public static void main(String[] args) {
mulSum(4);
}
输出结果:
2.break
代码示例1:找到1-10中第一个3 的倍数
public static void main(String[] args) {
int i = 1;
while (i <= 10) {
if (i % 3 == 0) {
System.out.println(i);
break;//结束所有的循环
}
i++;
}
}
输出结果:
3.continue
代码示例:找到1-100之间既能被3整除又能被5整除的数字
public static void main(String[] args) {
int i = 1;
for (; i < 101; i++) {
if (i % 15 != 0) {
continue;
}
System.out.println(i);
i++;
}
}
输出结果:
注:执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句.
4. for 循环
基本语法结构:
for(表达式1;表达式2;表达式3){
循环体;
}
表达式1: 用于初始化循环变量
表达式2: 循环条件
表达式3: 更新循环变量
代码示例1:5的阶乘
public static void main (String[] args) {
int ret = 1;
for (int i = 1; i <= 5; i++) {
ret *= i;
}
System.out.println(ret);
}
输出结果:
代码示例2: 1-5的阶乘相加
public static void main331(String[] args) {
int sum = 0;
for (int j = 1; j <= 5; j++) {
int ret = 1;
for (int i = 1; i <= j; i++) {
ret *= i;
}
sum += ret;
}
System.out.println(sum);
}
输出结果:
注: 和while循环类似
1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
2. 和 if 类似, for 后面的 { 建议和 while 写在同一行.
3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行.
5. 输入输出
System.out.println(msg);// 输出一个字符串, 带换行
System.out.print(msg);// 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出
注:
println 输出的内容自带 \n, print不带 \n
printf 的格式化输出方式和 C 语言的 printf 是基本一致的.
代码示例1:输入
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入姓名:");//zhi qiang
String name = input.nextLine();//
System.out.println("姓名:" + name);//zhi qiang
String name2 = input.next();//没有line 遇到空格就停止了
System.out.println("姓名:" + name2);//zhi
int a = input.nextInt();
System.out.println("这是一个整数:" + a);
}
代码示例2:循环输入
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (input.hasNext()) {
int n = input.nextInt();
System.out.println(n);
}//结束循环 ctrl+d;
}
代码示例3://猜数字游戏
public static void main(String[] args) {
Random random = new Random();
int randNum = random.nextInt(100) + 1;//固定格式 生成[1,101)的随机数
Scanner input = new Scanner(System.in);
while (true) {
System.out.println("请输入你要猜的数字[1-100]:");
int num = input.nextInt();
if (num < randNum) {
System.out.println("低了");
} else if (num == randNum) {
System.out.println("找到了");
} else {
System.out.println("高了");
}
}
}
注:使用该方法,需要导入 util包->import java.util.Scanner;
输出结果: