本文是跟着韩B站顺平老师的java课做的学习笔记,方便复习,整理出来与大家一起学习,不足之处欢迎大家在评论区留言
用大括号括起来的若干条简单的java语句。块(block)确定了变量的作用域。
说明:执行语句只有一条可以省略大括号,但最好不要这么做。else子句与最邻近的if构成一组。
import java.util.Scanner;
public class xiaoye{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入你的年纪:");
int age = scan.nextInt();
if (age >= 18){
System.out.println("你已经满18岁了,可以坐牢了");
}
else if (18 - age < 2) {
System.out.println("马上就轮到你了,莫慌");
}
else {
System.out.println("你还早,再等几年");
}
scan.close();
}
}
说明:
import java.util.Scanner;
public class xiaoye{
public static void main(String[] args){
/*
1.判断分数,8.0以上入围
2.分男女赛道
*/
Scanner input = new Scanner(System.in);
System.out.println("请输入您的分数:");
double score = input.nextDouble();
if (score >= 8.0){
Scanner input2 = new Scanner(System.in);
System.out.println("请输入性别(男/女):");
char gender = input2.next().charAt(0);
if (gender == '男') {
System.out.println("请您进入男子组继续比赛。");
}
else if (gender == '女'){
System.out.println("请您进入女子组继续比赛。");
} else {
System.out.println("呀嘿,暂无对应赛道,下次一定。");
}
} else {
System.out.println("抱歉,无法入围。");
}
}
}
switch(表达式){
case 常量1: //当...
语句块1;
break;
...
case 常量n:
语句块n;
break;
...
default:
default语句块;
break;
}
- 表达式
数据类型
要与 case 中常量保持一致。或者是可以自动转换成可以比较的类型。- switch(表达式) 中表达式的返回值必须是:byte、short、int、char、enum[枚举]、String
- case 常量/常量表达式:
- 不写 default 也是可以的。当没有 case 匹配的时候,啥也不输出。
- break: 跳出 switch 语句块,如果没有 break 语句,会发生穿透。
如果 case 后面没有 break ,那么就会一直执行后面 case 里面的语句块–穿透,这常常会发生错误。如果感觉把握不住,if-else也是不错的。 如果非要用 switch 语句, 编译代码时可以考虑加上-Xlint:fallthrough
选项
import java.util.Scanner;
public class xiaoye {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入1/2/3:");
int score = input.nextInt();
switch (score) {
case 1:
System.out.println("今天星期一,小猴穿新衣");
// break;
case 2:
System.out.println("今天星期二,小猴当小二");
break;
case 3:
System.out.println("今天星期三,小猴来巡山");
break;
default:
System.out.println("输入123以外的数字,小猴不出现喔");
break;
}
}
}
byte、short、int、char、enum[枚举]、String
这6种类型,两种分支语句都可以用,但是建议 switch。for (循环变量初始化 ; 循环条件 ; 循环变量迭代){
循环体(可以多条语句);
}
执行顺序:变量初始化
->循环条件
->循环体
->变量迭代
for(int i=0,j=0;i<3;i++,j+=2){
System.out.println("i="+i+'\t'+"j="+j);
}
while(循环条件){
循环体;
循环变量迭代;
}
do{
循环体;
循环变量迭代;
} while (循环条件);
循环中有循环,前面的for、while、do…while可以作为彼此的外(内)层循环。一般循环不要超过三层。
/*
*
* *
*****
*/
/*
1.先来半个塔,刚好层数与每层个数相同
for(int i=1;i<=4;i++){ //层数
for(int j=1;j<=i;j++){ //每层个数
System.out.print("*");
}
System.out.print('\n');
2.那一整个塔的层数 i 与每层个数 j 的关系:j=2*i-1
*
***
*****
*******
3.把2中的塔扶正,打印空格,那么每层空格数是最后一层中心点的前面*号的个数:总层数-当前层数
//在打印*之前先打空格
for(int k=1;k<=level-i;k++){
System.out.print(" ");
}
4.空心的金字塔:每层就两个,开头和末尾,其余打空格
*/
import java.util.Scanner;
public class xiaoye {
public static void main(String[] args) {
// 打印金字塔
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入金字塔层数:");
int level = myScanner.nextInt();
for(int i=1;i<=level;i++){ //层数
for(int k=1;k<=level-i;k++){ //总层数-当前层数
System.out.print(" ");
}
for(int j=1;j<=(2*i-1);j++){ //每层个数
if(j==1 || j==(2*i-1) || i==level){
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.print('\n');
}
}
}
import java.util.Scanner;
public class xiaoye {
public static void main(String[] args) {
// 打印菱形
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入菱形层数(奇数层):");
int level = myScanner.nextInt();
int num = ((level+1)/2);
for(int i=1;i<=num;i++){ //层数
for(int k=1;k<=num-i;k++){ //空格数=总层数-当前层数
System.out.print(" ");
}
for(int j=1;j<=(2*i-1);j++){ //每层个数
if(j==1 || j==(2*i-1)){
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.print('\n');
}
for(int i=level-num;i>=1;i--){ //剩余层数
for(int k=1;k<=num-i;k++){ //该层空格数=该层数-中间层数
System.out.print(" ");
}
for(int j=1;j<=(2*i-1);j++){
if(j==1 || j==(2*i-1)){
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.print('\n');
}
}
}
- break :外跳。
只能跳出语句块,不能跳入语句块
。
- 带标签的 break :希望直接跳出多重嵌套的循环语句,
标签必须放在希望跳出的循环最外层之前
,还要给他加上冒号
。这个标签实际上还可以用到 if 语句中。- continue:内跳。将语句控制移到最内层循环首部,或跳到 for 循环的变量迭代更新处。