一、If
1、if-else
if (boolean) {
代码块 ----------->若为true;则停止,否则继续
} else if (boolean) {
代码块 ----------->若为true;则停止,否则继续
} else if (boolean) {
代码块 ----------->若为true;则停止,否则继续
} else { // 默认情况
代码块 ----------->若前面都为false,则直接运行此行代码
}
Demo 是 "Demonstration" 的缩写,意思是 演示 或 示范。
通过Scanner可以实现从控制台输入信息
Scanner 是一个英文单词,通常翻译为“扫描仪”或“扫描器”,用于描述能够扫描和读取信息的设备。
在 Java 中,Scanner 是一个类,专门用来扫描输入流中的数据,比如从键盘读取用户输入的信息。
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
Eg:
评估成绩:/*
>=90
>=80
>=70
>=60
*/
if的其中一个小分支用if { return;} 可看《阿里巴巴代码规范》。
//卫语句1
if (score < 0 || score > 100) {
System.out.println("这是非法输入");
//方法后面的代码不再执行
return;
}
//卫语句2...
//合法输入
if (score >= 90 && score <= 100) {
System.out.println("优秀");
} else if (score >= 80 && score < 90) {
System.out.println("良好");
} else if (score >= 70 && score < 80) {
System.out.println("一般");
} else if (score >= 60 && score < 70) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
}
Shift+Enter: 在光标所在行下一行插入代码
2、三目运算符
公式: boolean语句 ? 数1 : 数2
eg: int max2 = num1 >=num2 ? num1 :num2
意为:max2=数1和数2中较大的那个(num1>=num2若为true?则将num1赋值给max2,否则将num2赋值给max2)
3、+号运算符
1、两边都是数字,则做的就是加法运算
2、若一边为字符串,则做的是字符串的拼接
@Test
public void test7() {
int age = 28;
//豆豆加加
System.out.println("我的年龄是23岁");
System.out.println("我的年龄是" + age + "岁");
System.out.println(10 + 20 + "" + 30);//"3030"
System.out.println("" + 10 + 20 + 30);//"102030"
}
二、While、For
1、while、for
任何复杂的程序逻辑都可以通过“顺序”、“分支”、“循环”这三种基本结构来实现
循环的三要素:
- 循环条件的初始化
- 循环条件的控制
- 循环条件的改变
while、for循环主要是两类题目:
1、累加思想(1+2+3+... + 100)
//sum += i; sum = sum + i
//sum -= i; sum = sum - i
//sum *= i; sum = sum * i
//sum /= i; sum = sum / i
@Test
public void test3() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
System.out.println(i);
sum += i;
System.out.println("sum: " + sum);
}
System.out.println("sum: " + sum);
}
2、统计思想,数一下符合条件的有多少个(计算1-100以内7的倍数的个数)
@Test
public void test4() {
int count = 0;
for (int i = 1; i <= 100; i++) {
if (i % 7 == 0) {
System.out.println(i);
count++;
}
}
System.out.println("count: " + count);
}
2、continue、break
continue:跳出本次循环,继续下一次循环
break:跳出离他最近的那层循环
@Test
public void test44() {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
System.out.println(i);
}
}
//输出:1 2 4 5
--------------------------------------------------------------------------
@Test
public void test45() {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
break;
}
System.out.println(i);
}
}
//输出1 2
----------------------------------------
@Test
public void test46() {
//i,j,k
for (int i = 1; i <= 5; i++) {
System.out.println("i: " + i);
for (int j = 1; j <= 5; j++) {
if (j == 3) {
break;
}
System.out.println("j: " + j);
}
}
}
//输出i:1 j:1 2 4 5 i:2 j:1 2 4 5 i:3 j:1 2 4 5 i:4 j:1 2 4 5 i:4 j:1 2 4 5 i:5 j:1 2 4 5
例题:随机(Random类)生成一个整数1-1000
用户输入一个整数,程序给出与存储的数字是“大”或者“小”,知道用户猜到这个数字位置。
如果中途用户希望程序退出,输入0可以退出。
int num = 200;
猜吧!
300
太大了
猜吧!
180
太小了
猜吧!
200
恭喜你,猜对了
方法.var(tab) -------->生成该方法的返回值
例如:
此时按tab:
则生成方法类
--------------------------------------------------------------------------------------------------------
移到光标下一行写代码快捷键: shift + 回车键
ctrl + 鼠标滚轮 ---->放大缩小页面
代码实现:
//随机生成一个整数1-1000
@Test
public void test7() {
//params parameter:参数 negative
Random random = new Random();
//the upper bound (exclusive). Must be positive.
//exclude:排除、不包含
//include:
//value between zero (inclusive) and bound (exclusive)
// [0,100) + 1
// 1-100
int num = random.nextInt(100) + 1;
}
positive 积极的(正数)
bound 边界
3、双重for循环
双重for循环:
- 外层循环控制行数,数一下有几行就能确定外层循环。
- 内层循环控制列数,这一行打印多少个,到底要打印多少个要找出和当前行之间的一个关系。
快速注释:ctrl + /
一起选中某几行:shift + alt + 鼠标点击
空格符号(制表符): \t
@Test
public void test3(){
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(j + "*" +i +"\t");
}
System.out.println();
}
}
三、Switch
switch: 可以接受的值( byte short int整数类型,char,String) 不支持long
switch(2) {
case 1:
.....
break;
case 2:
....
break;
.....
default:
.....
break;
}
练习1:
输入月份判断天数:
1、3、5、7、8、10、12 -------- 31天
4、6 、9、11--------------------30天
2----------------------------------28/29天