//顺序结构就按顺序呗
public static void main(String[] args) {
System.out.println("hello1");
System.out.println("hello2");
System.out.println("hello3");
}
2.1if结构
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输内容:");
String s = scanner.nextLine();
//equals:判断字符串是否相等,不用"="
if(s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
scanner.close();
}
public static void main(String[] args) {
//考试分数大于等于60是及格,小于60不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if(score>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
scanner.close();
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if(score==100){
System.out.println("恭喜,是满分!");
}else if (score <100 && score >= 90){
System.out.println("A");
}else if (score <90 && score >= 80){
System.out.println("B");
}else if (score <80 && score >= 70){
System.out.println("C");
}else if (score <70 && score >= 60){
System.out.println("D");
}else if (score <60 && score >= 0){
System.out.println("A");
} else {
System.out.println("成绩不合法");
}
scanner.close();
}
/*
1、分数的不在0-100的也要考虑,为不合法,写程序的时候就要想到所有的情况,不然后续修改bug很麻烦
2、只要满足了一个else if,其他的else if就不执行了
*/
2.2Switch结构
public static void main(String[] args) {
//case 穿透现象 swith 匹配一个值
char grade = 'A';
switch(grade){
case 'A':
System.out.println("优秀");
break;//不写break就会把后面的全部输出来,最好都加上
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("及格");
break;
case 'D':
System.out.println("再接再厉");
break;
case 'E':
System.out.println("没救了");
break;
default:
System.out.println("未知等级");
}
}
/*
语法:switch(expression){
case value://记得是冒号!!
执行语句;
break;
case value:
执行语句;
break;
default:
执行语句;
*/
public static void main(String[] args) {
String name = "fenfen";
//jdk7才支持的新特征,表达式结果可以是字符串
//反编译 java--class(字节码文件)
switch (name){
case "yueyue":
System.out.println("yueyue");
break;
case"fenfen":
System.out.println("fenfen");
break;
default:
System.out.println("做咩啊");
}
/*反编译操作方式:
把out里面的class文件利用idea复制到src里面就是可以看到反编译的文件了,后缀是class
发现switch中反编译后:switch是通过hashCode()和equals去查找中文对应的哈希值看下匹不匹配
*/
}
//反编译源码
public static void main(String[] args) {
String name = "fenfen";
byte var3 = -1;
switch(name.hashCode()) {
case -1278140000:
if (name.equals("fenfen")) {
var3 = 1;
}
break;
3.1while结构
public static void main(String[] args) {
//输出1-100
int i = 0;
while (i<100){
i = i+1;
System.out.println(i);
}
}
public static void main(String[] args) {
while(true){
/*死循环
一般用在等待客户端连接
服务器监听响应
定时检查任务
*/
}
}
public static void main(String[] args) {
//计算1+2+3+...+100
int i =0;
int sum = 0;
while (i<=100){
sum =sum+i;
i = i+1;
}
System.out.println(sum);
}
3.2DoWhile结构
public static void main(String[] args) {
//用while:不会输出a,直接不走循环了
int a = 0;
while(a<0){
System.out.println(a);
a++;
}
System.out.println("=======================");
//用dowhile:输出a=0,至少走一次循环
do{
System.out.println(a);
a++;
}while(a<0);
}
3.3For结构
public static void main(String[] args) {
int a = 1;//初始化条件
while(a<100){//条件判断
System.out.println(a);//循环体
a+=1;//迭代
}
System.out.println("while循环结束");
//for (初始值,布尔值,更新),即初始化、条件判断、迭代
for(int i = 1;i<100;i++){//快捷键:100.for加上tab键
System.out.println(i);
}
}
public static void main(String[] args) {
int oddSum = 0;//定义奇数的和
int evenSum = 0;//定义偶数的和
for (int i = 0; i <= 100; i++) {
if(i%2!=0){//用模运算
oddSum+=i;
}else{
evenSum+=i;
}
}
System.out.println("奇数的和:"+oddSum);
System.out.println("偶数的和:"+evenSum);
}
//for搭配if...else一起写
public static void main(String[] args) {
for (int i = 0; i <= 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if(i%(5*3)==0){
System.out.print("\n");//或者System.out.println();
}
//printin 输出会换行
//print 输出不会换行
}
}
public static void main(String[] args) {
/*
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
*/
for (int i = 1; i <= 9; i++) {
for (int j = 1; i>=j; j++) {
System.out.print(i + "*" + j +"="+(i*j)+"\t");
}
System.out.println();
}
}
/*
总结:
①两层for循环
②内循环中i>=j的约束
③内循环完后换行sout的使用
*/
}
public static void main(String[] args) {
//①普通写法
int[] numbers = {10,20,30,40,50};//定义了一个数组
for (int i =0;i<5;i++){
System.out.println(numbers[i]);
}
System.out.println("========================");
//②指针抽象一点的写法:遍历数组中的元素
for (int x:numbers){//x是内置的一个指针
System.out.println(x);
}
}
4.1break
public static void main(String[] args) {
int i =0;
while(i<100) {
i++;
System.out.println(i);
if (i == 30) {
break;//30后面就不干了,跳出这个循环
}
}
System.out.println("123");
}
4.2continue
public static void main(String[] args) {
int i =0;
while (i<100){
i++;
if(i%10==0){
System.out.println();
continue;//立马会跳到循环最开始的地方,终止某次循环,后面的这一程序不执行
}
System.out.print(i);
}
}
4.3带标签的continue
public static void main(String[] args) {
//打印101-150之间所有的质数
int count = 0;
outer:for(int i = 101;i<150;i++){ //outer是标签
for(int j = 2;j<i/2;j++){
if(i%j==0){
continue outer;//返回到标签的位置,可以跳到指定循环处,不一定就跳出这个循环而已
}
}
System.out.print(i+" ");
}
}