【幻化万千戏红尘】qianfengDay03-java基础学习:for循环,switch,if

时间:2021-08-22 10:29:29
课程回顾:


变量
格式:数据类型 变量名[=值];
变量必须先声明再赋值,才能使用




运算符:
1、算术运算符
2、逻辑运算符
3、关系运算符
4、赋值运算符
5、位运算符
6、字符串连接运算符
7、三目运算符




今日内容:
程序的结构:
1、顺序结构:从上到下,逐行进行
2、分支结构:有选择性的执行代码
if-else
switch
3、循环结构:满足某个条件,就一直执行代码


从键盘输入数据的步骤:
1、import java.util.Scanner;//导包,在文件的最上端
2、在main方法内部
Scanner scn=new Scanner(System.in);//创建对象
int score=scn.nextInt();//获取输入的数字




分支结构:实现程序流程控制,根据一定的条件有选择的执行某些代码
1、if-else
格式一:if(boolean类型表达式){代码块},如果……
当boolean类型表达式为true就会执行指定的代码块
格式二:if(boolean类型表达式){代码块}else{代码块},如果……否则……
如果条件满足就执行if语句的代码,否则就执行else的代码
格式三:if(boolean型表达式){代码块}else if(boolean型表达式){代码块}……else{代码块}
多条件满足其一


完整格式:if(boolean型表达式){代码块}[else if(boolean型表达式){代码块}……][else{代码块}]
if可以单独使用
else if和else都不可以单独使用,必须跟在if的后面


//练习:从键盘输入年龄
如果<18,输出,未成年
18-22:青年
23-40:中年
40-100:老年
否则:未知




if语句的嵌套使用:
格式:
if(boolean类型表达式)
{
……
if(boolean类型表达式){……}
}




练习:int no,学号,如果学号为8位数,那么输出恭喜你成为千锋的一员,否就输出,很遗憾,学号不正确
请使用2种手段完成编程


练习:int age年龄,char sex性别
如果男
验证年龄
如果年龄在18,28之间,输出:帅小伙
如果女
验证年龄,为18,输出:女大十八变
年龄为20,30输出:魅力女生
否则:女孩子




2、switch
格式:
switch(exp)
{
case 值1:代码块;break;
case 值2:代码块;break;
……
case 值n:代码块;break;
[default : 代码块;break;]
}
exp:byte、short、char、int(参与运算后都会转为int型) 1.6之后支持枚举(enum) 1.7之后支持String
值:常量值
比如exp的值为"a"+2=99;
case 99:.....和case 'c':....是一样的效果,不能同时运用,选其一
default:可有可无,表示所有case的值都没有匹配上,就会执行default


简单计算器
int num1=10,num2=6;
char fh;//符号
从键盘输入符号
使用switch输出结果


next().charAt(0);


//闰年口诀:四年一润,百年不润,四百年再润,二月润年29天,平年28天
润年条件:
1、四年一润,百年不润
2、四百年再润
/*
变量,sex,age
使用if-else验证性别
如果:女
使用switch验证age
年龄按照30划分:
0(青春),1(成熟),2(暮年),3(长寿)
如果:男
年龄按照50划分
0(成年),1(老年),2(长寿)
*/


循环结构:
条件成立的话就重复去执行一段代码
1、for语句
格式:for(表达式1;表达式2;表达式3)
{
循环体;
}
表达式1:循环变量初始化
表达式2:循环条件验证(boolean型表达式)
表达式3:循环变量改变
循环体:重复执行的代码块


2、while语句
3、do/while语句




//输出10以内的偶数






素数(质数)


明日内容
while
do/while
循环嵌套
特殊的for语句
特殊循环语句控制




1、
从键盘输入成绩,现在的成绩都是百分制
根据成绩输出等级
A:>=90
B:>=80
C:>=70
D:>=60
E:>=0


import java.util.Scanner;
class zuoye01 
{
public static void main(String[] args) 
{
//声明一个导包变量
Scanner scan = new Scanner(System.in);
int score = scan.nextInt();
if(score < 60)
{
   System.out.println("你的成绩等级为:E");
}
else if(score < 70)
{
   System.out.println("你的成绩等级为:D");
}
else if(score < 80)
{
   System.out.println("你的成绩等级为:C");
}
else if(score <90)
{
   System.out.println("你的成绩等级为:B");
}
else if(score <100)
{
System.out.println("你的成绩等级为:A");
}
else
{
   System.out.println("输入的成绩有问题,请重新输入");
}


}
}




2、请完成对工资的分级
工资范围:
工资
>20000:哇,高薪哟
>10000:呀,不错哟
>5000:哦,能生存啦
>2000:嗨,要吃泡面哟
其他:只能喝水了
1)、使用三目运算符的嵌套
2)、请使用if-else
3)、请使用switch
import java.util.Scanner;
class zuoye02 
{
public static void main(String[] args) 
{
//声明一个导包变量
Scanner scan = new Scanner(System.in);
int gj = scan.nextInt();//接收键盘输入的数据


/**       if(gj > 20000)
  {
  System.out.println("哇,高薪哟");
  }
  else if(gj > 10000)
  {
      System.out.println("呀,不错哟");
  }
  else if(gj > 5000)
  {
  System.out.println("哦,能生存啦");


  }
  else if(gj > 2000)
  {
      System.out.println("嗨,要吃泡面哟");
  }
  else
  {
  System.out.println("只能喝白开水了");
  }
*/      
/**  
       String a;
       if(gj < 5000)
  {
           a = gj > 2000? "嗨,要吃泡面哟" : "只能喝水了";
  System.out.println(a);
  }
  else if(gj < 20000)
  {
  a = gj > 10000 ? "呀,不错哟":"哦,能生存了";
  System.out.println(a);
  }
  else
  {
  System.out.println("哇,高薪哟");
  }
*/


        if(gj >10000)
{
  int a = gj/10000;
  switch(a)
  {
     case 1 :System.out.println("呀,不错哟");break;
 case 2 :
 case 3 :
 case 4 :
              case 5 :
 case 6 :
 case 7 :
 case 8 :
              case 9 :
 default:System.out.println("哇,高薪哟");
  }
}
  else if(gj > 2000)
{
     int b = gj/1000;
 switch(b)
 {
   case 2:
case 3:
case 4:System.out.println("嗨,要吃泡面啦");break;
case 5:
case 6:
case 7:
case 8:
case 9:System.out.println("哦,能生存啦");break;
                 
 }
  }
  else
  {
  System.out.println("只能喝水了");
  }
}
}








3、请从键盘输入要查询的年份和月份
输出对应月份的天数,并且计算从当前1月份到该月份的总天数




4、请输出20以内的奇数
for(int i =1; i <= 20; i++)
{
   if(i%2!=0)
{
System.out.println("20以内的奇数有:"+i);
}
}






5、请输出100到888之间的能被13整除,
但是不能被3整除的数字
if(100<m<888)
{}
else{输入数据出错,请重新输入}


要求:符合条件的数字,每行4个
注:System.out.println():输出会换行
System.out.print():输出不会换行
\t:制表符,会产生多个空格的效果
class zuoye04 
{
public static void main(String[] args) 
{    
int b=0;
for(int i=100; i<=888; i++)
{
   if(i%13==0)
   {
  if(i%3!=0)
  {
  System.out.print(i+"\t");
  b+=1;
  if(b%4==0)
  {
     System.out.println("");
  }
}
}

}
}
}












附加题***:
打印乘法口诀
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
……


class zuoye06 
{
public static void main(String[] args) 
{
    int num = 0;
for(int i=1; i<=9; i++)
{
    for(int j=1; j<=i; j++)
{
    num = i*j;
System.out.print(i+"*"+j+"="+num+"\t");


}
System.out.println();
}
}
}