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

课程回顾:

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


运算符:
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 1.6之后支持枚举(enum) 1.7之后支持String
值:常量值
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();
   }
 }
}

 

posted on 2016-07-14 09:05  幻化万千戏红尘  阅读(129)  评论(0编辑  收藏  举报