目录
1. 分支结构
1.1 if
1.2 switch
2. 循环结构
2.1 while循环
2.2 for循环
2.3 do...while循环
3. 输入输出
3.1 输出到控制台
3.2 从键盘输入
4. 猜数字游戏
语法结构
if(布尔表达式){
//语句
}
if(布尔表达式){
//语句
}else{
//语句
}
if(布尔表达式1){
//语句
}else if(布尔表达式2){
//语句
}else{
//语句
}
对于Java而言,不论是复合语句还是单一语句,都必须加花括号;再有就是else,与elseif语句放置的位置,一定放置于 花括号 旁!!
示例:
1. 判断一个数字是奇数还是偶数
public class Text {
public static void main(String[] args) {
int a = 80;
if(a % 2 == 0){
System.out.println(a + "是偶数!");
}else{
System.out.println(a + "是奇数");
}
}
}
2. 判断一个数字是正数,负数,还是零
public static void main(String[] args) {
//判断一个数字是正数,负数,还是零
int b = -89;
if(b > 0){
System.out.println(b + "是正数");
}else if(b < 0){
System.out.println(b + "是负数");
}else{
System.out.println(b + "为零");
}
}
3. 判断一个年份是否为闰年
普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
public static void main(String[] args) {
int year = 1999;
if(year % 100 == 0){
if(year % 400 == 0){
System.out.println(year + "是闰年");
}else {
System.out.println(year + "不是闰年");
}
}else{
if(year % 4 == 0){
System.out.println(year + "是闰年");
}else{
System.out.println(year + "不是闰年");
}
}
}
public static void main(String[] args) {
int year = 1992;
if((year % 400 == 0) || (year % 4 == 0) && (year % 100 != 0)){
System.out.println(year + "是闰年");
}else{
System.out.println(year + "不是闰年");
}
}
switch(表达式){
case 常量值1 :
//语句1
break;
case 常量值2 :
//语句2
break;
.......
default :
//都不满足时,执行这里的语句
break;
}
需要注意的是:
1. 多个case后的常量值不可以重复
2. switch的括号内只能是以下类型的表达式:
· 基本类型:byte、char、short、int,注意不能是long类型
· 引用类型:String常量串、枚举类型
示例
1. 根据 a 的值输出星期
public static void main(String[] args) {
short a = 5;
switch(a){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期天");
break;
default:
System.out.println("输入有误!");
break;
}
}
while(布尔表达式){
//语句
}
示例:
1. 打印1~10
public static void main(String[] args) {
int i = 1;
while(i <= 10){
System.out.println(i);
i++;
}
}
2. 计算1~100的和
public static void main(String[] args) {
int i = 1;
int sum = 0;
while(i <= 100){
sum += i;
i++;
}
System.out.println(sum);
}
3. 计算阶乘
public static void main(String[] args) {
int num = 1;
int ret = 1;
while(num <= 5){
ret *= num;
num++;
}
System.out.println(ret);
}
4. 计算前n项阶乘的和
public static void main(String[] args) {
int num = 1;
int sum = 0;
int ret = 1;
while(num <=5){
ret *= num;
sum += ret;
num++;
}
System.out.println(sum);
}
基本语法:
for(表达式1;布尔表达式2;表达式3){
表达式4;
}
表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
表达式2: 循环条件,满则循环继续,否则循环结束
表达式3: 循环变量更新方式
基本语法:
do{
//语句
}while(布尔表达式);
基本语法:
int a = 10;
System.out.println(a); //输出任意类型,并换行
System.out.print(a); //输出任意类型,不换行
System.out.printf("%d\n",a); //格式化输出,与c语言相同
使用 Scanner 读取字符串/整数/浮点数
import java.util.Scanner;
public class Text {
public static void main(String[] args) {
int a = 10;
System.out.println(a);
System.out.print(a);
System.out.printf("%d\n",a);
Scanner sc = new Scanner(System.in); //输入这句代码之后,会自动出现首行代码
System.out.println("请输入姓名:");
String name = sc.nextLine(); //字符串的输入
System.out.println("请输入年龄:");
int age = sc.nextInt(); //整型的输入
System.out.println("请输入工资:");
Double salary = sc.nextDouble(); //浮点数的输入
System.out.printf("%s %d %f",name ,age, salary);
sc.close();
}
}
示例:
1. 使用Scanner读取N个数,并求其平均值
public static void main(String[] args) {
double sum = 0l;
int count = 0;
Scanner sc = new Scanner(System.in);
while(sc.hasNextDouble()){
double num = sc.nextDouble();
sum += num;
count++;
}
System.out.println("平均数为"+(sum/count));
sc.close();
}
游戏规则:
系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低 了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了" .
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random random = new Random();
int toGuess = random.nextInt(100);
while(true){
System.out.println("请输入猜测的数字");
int num = sc.nextInt();
if(num > toGuess){
System.out.println("猜大了!");
}else if(num < toGuess){
System.out.println("猜小了!");
}else{
System.out.println("猜对了!!!");
break;
}
}
sc.close();
}