课前练习和复习
- 回顾if语句
- 回顾switch语句
- 练习一
Console.WriteLine("输入第一个整数:");
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入第二个整数:");
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入第三个整数:");
int c = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入第四个整数:");
int d = Convert.ToInt32(Console.ReadLine());
int max = a;
int min = a;
if (max < b){max = b;}
if (max < c){max = c;}
if (max < d){max = d;}
else {max = a;}
if (min > b){min = b;}
if (min > c){min = c;}
if (min > d){min = d;}
else {min = a;}
Console.WriteLine(max);
Console.WriteLine(min);
一、循环语句
1.while循环
(1)基本结构
(2) 如何控制循环次数
通过改变循环判断条件的结果,让其循环到一定值的时候会不满足则跳出循环,执行次数变有限了
(3) ① 练习题一
Console.WriteLine("输入一个整数:");
int n = Convert.ToInt32(Console.ReadLine());
int i = 1;
int sum = 0;
while (i < n)
{
sum = i + sum;
i++;
}
Console.WriteLine(sum+n);
② 练习题二
int i = 1;
int n = 100;
while (i <= n)
{
i++;
if (i % 2 == 0)
{
Console.WriteLine(i);
}
}
③ 练习题三
Console.WriteLine("输入一个自然数:");
int i = Convert.ToInt32(Console.ReadLine());
int n = 0;
while (i>1)
{
if (i % 2 == 1)
{
i = 3 * i + 1;
}
else
{
i = i / 2;
}
n++;
}
Console.WriteLine(n);
④ 练习题四
提示:
Console.WriteLine("输入班级人数:");
int n = Convert.ToInt32(Console.ReadLine());
int a = 1;
double average = 0;
double sum = 0;
while (a <= n)
{
Console.WriteLine("输入年纪:");
double age = double.Parse(Console.ReadLine());
sum = sum + age;
a++;
}
average = sum / n;
Console.WriteLine(Math.Round(average,2));
2.for循环
(1)基本结构
(2)①练习题一
Console.WriteLine("输入第一个正整数:");
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入第二个正整数:");
int m = Convert.ToInt32(Console.ReadLine());
int i = 0;
int sum = 0;
for (i=n ;i>=n&&i<=m ; i++)
{
if (i % 17 == 0)
{
sum = i + sum;
}
}
Console.WriteLine(sum);
//teacher
/*Console.WriteLine("输入第一个正整数:");
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入第二个正整数:");
int m = Convert.ToInt32(Console.ReadLine());
int i = 0;
int sum = 0;
if (n > m)
{
n = m;
m = i;
}
for (; n<=m; n++)
{
if (n % 17 == 0)
{
sum = n + sum;
}
}
Console.WriteLine(sum);*/
3. do...while循环
(1) 基本结构
4.关于循环的其他题目
① 练习一
Console.Write("请输入a的值:");
int a=Convert.ToInt32(Console.ReadLine());
Console.Write("请输入n的值:");
int n=Convert.ToInt32(Console.ReadLine());
int i, sum = 1;
for(i=1;i<=n;i++)
{
if (n < 0)
{
Console.WriteLine("输入的n的值不对请重新输入");
continue;
}
else
{
sum = sum * a;
}
}
Console.WriteLine("a的n次方为:"+sum);
② 练习二
/*
Console.WriteLine("请输入球的初始高度:");
float ch = Convert.ToSingle(Console.ReadLine());
float jh = ch * 2, sum = ch;
for (int i = 0; i < 10; i++)
{
ch /= 2;
}
for (int k = 0; k < 9; k++)
{
jh /= 2;
sum += jh;
}
Console.WriteLine("第十次后,经过{0}米,反弹{1}米", sum, ch);
*/
//下面的好
Console.Write("请输入初始高度i:");
double i = Convert.ToDouble(Console.ReadLine());
Console.Write("请输入计算反弹次数n:");
int n = Convert.ToInt32(Console.ReadLine());
int a;
double sum=0;
for(a=1;a<=n;a++)
{
sum = sum + i + i / 2;
i = i / 2;
}
Console.WriteLine("反弹{0}米经过了{1}米",i,sum);
③ 练习三
for (int num = 100; num <= 999; num++)
{
int i = num % 10; //取个位
int j = (num / 10) % 10; //取十位
int k = num / 100; //取百位
if (i * i * i + j * j * j + k * k * k == num)
{
Console.WriteLine(num);
}
}
5.变量作用域
1. 同一个作用域中的变量不能重名
2. 父作用域与子作用域,可以访问父作用域里面的变量,但是父作用域不能访问子作用域中定义的变量
6.循环中的break和continue
1. break:跳出当前整个循环
2. continue:跳出当前这一次循环,继续执行下一次循环的内容
二、循环嵌套
1.练习一
int n =Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= n; i++)//循环每层
{
//每一层里面都有星星
for (int j = 1; j <= i; j++)
{
Console.Write("*");
}
Console.WriteLine();//循环一层星星空格一行
}
2.练习二
//星星和当前层号的关系:2n-1 1 3 5 7 9
//空格个数 n-i n减去当前层号
int n = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= n; i++)
{
//先打印空格
for (int j = 1; j <=(n- i); j++)
{
Console.Write(" ");
}
//再打印星星
for(int j = 1; j <=(2*i-1); j++)
{
Console.Write("*");
}
//打印每一层要换行
Console.WriteLine();
}
3.练习三
int n = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= n; i++)
{
//先打印空格
for (int j = 1; j <= (n - i); j++)
{
Console.Write(" ");
}
//再打印星星
for (int j = 1; j <= (2 * i - 1); j++)
{
Console.Write("*");
}
//打印每一层要换行
Console.WriteLine();
}
//循环 输出倒三角
for (int i =1;i<n;i++)
{
//循环出每一层的空格
for (int j = 1; j <=i; j++)
{
Console.Write(" ");//空格
}
//循环每一层的星星
for (int j = 1; j <=2*(n-i)-1; j++)//2(n-i)-1
{
Console.Write("*");
}
Console.WriteLine();//换行
}
4.练习四 输出九九乘法表
int n = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= n; i++)
{
//先打印空格
for (int j = 1; j <= (n - i); j++)
{
Console.Write(" ");
}
//再打印星星
for (int j = 1; j <= (2 * i - 1); j++)
{
Console.Write("*");
}
//打印每一层要换行
Console.WriteLine();
}
//循环 输出倒三角
for (int i =1;i<n;i++)
{
//循环出每一层的空格
for (int j = 1; j <=i; j++)
{
Console.Write(" ");//空格
}
//循环每一层的星星
for (int j = 1; j <=2*(n-i)-1; j++)//2(n-i)-1
{
Console.Write("*");
}
Console.WriteLine();//换行
}
5.练习五 百文买鸡问题:
for (int i =1;i<34;i++)//公鸡个数
{
for(int j=1;j<21;j++)//母鸡个数
{
for(int k=1;k<51;k++)//小鸡个数
{
if (i * 3 + j * 5 + k * 2 == 100)
Console.WriteLine("公鸡:{0},母鸡:{1},小鸡:{2}", i, j, k);
}
}
}
三、本节课部分源码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp12
{
internal class Program
{
static void Main(string[] args)
{
//while 循环
/*while (循环判断的条件) 如果条件为真就会一直执行循环体重的代码*/
/*
while(true)
{
Console.WriteLine(1);
}
int i = 1;
while(i<10)
{
Console.WriteLine(i);
//让i增加 才有可能为假
i++;
}
int j = 10;
while(j<10)
{
j--;
Console.WriteLine(j);
}
*/
/*
int i = 1, sum=0;
int n=Convert.ToInt32(Console.ReadLine());
while(i<=n)
{
sum = sum + i;
i++;
}
Console.WriteLine(sum);
*/
/*
*int i = 1;
while(i<=100)
{
if(i%2==0)
{
Console.Write(i);
Console.Write(" ");
}
i++;
}
*/
/*
int i=Convert.ToInt32(Console.ReadLine());
int j = 0;
while(i!=1)
{
if(i%2==1)
{
i = 3 * i + 1;
}
else
{
i = i / 2;
}
j++;
}
Console.WriteLine(j);
*/
/*
double num=1.23342;
Console.WriteLine(num.ToString("0.000"));//保留三位小数*/
/*int i = 0;
double sum = 0;
double average;
int n=Convert.ToInt32(Console.ReadLine());
while(i<n)
{
*//*int j = Convert.ToInt32(Console.ReadLine());
sum = sum + j;*//*
sum += Convert.ToInt32(Console.ReadLine());
i++;
}
average = sum / i;
Console.WriteLine(average.ToString("0.00"));
*/
/*for(初始值;表达式;增量表达式)
{
循环体
}*/
/* for(; ; )//表示死循环
{
Console.WriteLine()
}*/
/* int n=Convert.ToInt32(Console.ReadLine());
int m=Convert.ToInt32(Console.ReadLine());
int i, sum = 0;
int t;
if(n>m)
{
t = n;
n = m;
m = t;
}
for(i=n;i<m;i++)
{
if(i%17==0)
{
sum += i;
}
}
Console.WriteLine(sum);*/
/* do
{
} while (true);//不管条件真假,都会执行一次*/
/*Console.Write("请输入a的值:");
int a=Convert.ToInt32(Console.ReadLine());
Console.Write("请输入n的值:");
int n=Convert.ToInt32(Console.ReadLine());
int i, sum = 1;
for(i=1;i<=n;i++)
{
if (n < 0)
{
Console.WriteLine("输入的n的值不对请重新输入");
continue;
}
else
{
sum = sum * a;
}
}
Console.Write("a的n次方为:");
Console.WriteLine(sum);*/
/*Console.Write("请输入初始高度i:");
double i = Convert.ToDouble(Console.ReadLine());
Console.Write("请输入计算反弹次数n:");
int n = Convert.ToInt32(Console.ReadLine());
int a;
double sum=0;
for(a=1;a<=n;a++)
{
sum = sum + i + i / 2;
i = i / 2;
}
Console.WriteLine("反弹{0}米经过了{1}米",i,sum);
// Console.WriteLine(i.ToString("0.00"));*/
}
}
}