热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C语言同时满足三个并列条件,你不得不知道的编程基础之同时满足多个条件

我们越来越接近我们的目标。程序可以获取用户输入;可以给用户输出结果,人际互动没有问题了。中间可以做到各种计算,比如简单的数学运算ÿ

我们越来越接近我们的目标。

程序可以获取用户输入; 可以给用户输出结果, 人际互动没有问题了。

中间可以做到各种计算, 比如简单的数学运算; 逻辑比较运算等等, 而且根据这些运算结果执行不同的代码。

但是好像缺少了一些东西, 所以我们继续完善。

打开vs2019开发人员命令提示符。

输入命令:

d:

cd guess

md v4

cd v4

notepad game.c

然后输入如下代码:

// game.c

// 游戏的第4个版本

#include

int main(void)

{

int user;

printf("请猜猜看, (1-100)\n");

scanf("%d", &user);

//  还是以前的if语句,

if (user >&#61; 1 && user <&#61; 100) //  重点

{

printf("合法数字\n");

}

else

{

printf("非法数字\n");

}

printf("游戏结束\n");

return 0;

}

切换到命令提示符&#xff0c; 编译运行&#xff1a;

cl game.c

game.exe

然后多运行几次&#xff0c; 我们发现程序现在可以圈定一个范围了。

同样的python程序&#xff1a;

notepad game.py

然后编辑器里输入代码&#xff1a;

# --*-- Encoding: UTF-8 --*--

#! fileName: game.py

# 游戏的第四个版本

user &#61; int(input("请猜猜看&#xff1a; (1-100)\n"))

if user >&#61; 1 and user <&#61; 100: # 重点

print("合法数字")

else:

print("非法数字")

#

print("游戏结束")

写完后切换到命令提示符&#xff0c; 运行python程序

python game.py

结果和C语言的一模一样。

解说和理论

首先我们发现C语言的代码比python长的多。

主要是花括号占据了好几行代码。

那么在C语言里我能不能不写花括号&#xff0c; 这个是可以的&#xff0c; 比如&#xff1a;

if 条件

一行代码

如果两行以上代码的话必须用花括号来包围&#xff0c; 否则编译器不知道你的意思。

所以我的建议是不要省略花括号&#xff0c; 万一以后改动代码呢&#xff1f;

还是为了可读性。

另外if的条件必须写在小括号里。

而python就有着很大不同&#xff0c;

if 条件:

空白符代码

C语言用花括号来限定代码块&#xff0c; 而python使用缩进来限定代码块。

缩进就是排版格式&#xff0c; 比如我们写文章&#xff0c; 给一个自然段开头必须留空几个空格。

在python里只要遇到冒号换行必须留几个空格。

而且同一个代码块每一行必须对其。

if 条件&#xff1a;

代码块1

else&#xff1a;

代码块2

那么这里的代码块1和代码块2也必须对其&#xff0c; 代码块1四个空格&#xff0c; 代码块2三个空格肯定是出错的。

眼睛看不到屏幕写python稍微麻烦一点&#xff0c; 不过我的经验可以借鉴。

而编写其他语言的代码没有这个问题&#xff0c; 代码块都是在花括号里的&#xff0c; 有的使用了关键字&#xff0c; 比如&#xff1a;

if条件 then

代码块

end

总之这些编程语言需要遵循某种格式&#xff0c; 不能乱写一通。

另外if语句的else从句可以省略&#xff0c; 比如&#xff1a;

if 关闭 &#61;&#61; 真:

退出程序

我们有这样一个使用场景&#xff0c; 键入/h打开帮助文档。

我们可以用python来模拟一下&#xff1a;

res &#61; input("键入/h查看帮助")

if res &#61;&#61; "/h":

print("帮助文档, 后面的省略")

对应的C语言代码是这样&#xff1a;

char res;

printf("键入/h查看帮助\n");

scanf("/%c", &res);

if (res &#61;&#61; &#39;h&#39;)

{

printf("帮助文档 后面的省略\n");

}

这里就问题来了&#xff0c; 如果人家输入/H怎么办&#xff1f;

你总不能要求人家必须输入小写的h吧。

怎么办&#xff1f;

&&; ||; !

首先我们已经看到过&&的使用&#xff0c; 在python里是and。

这个两边的条件必须是treu&#xff0c; 这样结果是treu的。

true && true

true

true && false

false

false && true

false

这样的状态下程序不会运算第二个条件&#xff0c; 第一个已经false了第二个影响不了结果&#xff0c; 结果肯定是false。

还有一个

false && false

false

这样我们就可以明白

user >&#61; 1 && user <&#61; 100

这个含义&#xff0c; user必须是大于或等于1&#xff0c; 并且user必须小于或者等于100&#xff0c; 这样条件成立&#xff0c; 结果是treu&#xff0c; 否则条件不成立。

那么||呢&#xff1f; 在python里是or

true || true

true

这样状态下也不会运算第二个条件。

false || false

false

true || false

true

不会运算第二个条件

false || true

true

所以我们可以看出解决大小写问题的答案。

res &#61;&#61; &#39;h&#39; || res &#61;&#61; &#39;H&#39;

完整的代码实例如下&#xff1a;

#include

int main(void)

{

char res;

printf("键入/h查看帮助\n");

scanf("/%c", &res);

if (res &#61;&#61; &#39;h&#39; || res &#61;&#61; &#39;H&#39;)

{

printf("帮助文档 后面的省略\n");

}

return 0;

}

最后说一下!, 在python里是not。

意思也很简单&#xff0c; 反着来&#xff0c; 如果结果是true经过 not后反转过来了&#xff0c; false, 反之亦然。

在python里这是单词所以必须需要空格来分开写&#xff0c; 否则连在一起出现错误。

好了&#xff0c; 这次就先到这。



推荐阅读
  • 本文介绍了C函数ispunct()的用法及示例代码。ispunct()函数用于检查传递的字符是否是标点符号,如果是标点符号则返回非零值,否则返回零。示例代码演示了如何使用ispunct()函数来判断字符是否为标点符号。 ... [详细]
  • c语言\n不换行,c语言printf不换行
    本文目录一览:1、C语言不换行输入2、c语言的 ... [详细]
  • 本文介绍了在Windows系统上使用C语言命令行参数启动程序并传递参数的方法,包括接收参数程序的代码和bat文件的编写方法,同时给出了程序运行的结果。 ... [详细]
  • C语言判断正整数能否被整除的程序
    本文介绍了使用C语言编写的判断正整数能否被整除的程序,包括输入一个三位正整数,判断是否能被3整除且至少包含数字3的方法。同时还介绍了使用qsort函数进行快速排序的算法。 ... [详细]
  • 本文介绍了GTK+中的GObject对象系统,该系统是基于GLib和C语言完成的面向对象的框架,提供了灵活、可扩展且易于映射到其他语言的特性。其中最重要的是GType,它是GLib运行时类型认证和管理系统的基础,通过注册和管理基本数据类型、用户定义对象和界面类型来实现对象的继承。文章详细解释了GObject系统中对象的三个部分:唯一的ID标识、类结构和实例结构。 ... [详细]
  • 本文介绍了基于c语言的mcs51单片机定时器计数器的应用教程,包括定时器的设置和计数方法,以及中断函数的使用。同时介绍了定时器应用的举例,包括定时器中断函数的编写和频率值的计算方法。主函数中设置了T0模式和T1计数的初值,并开启了T0和T1的中断,最后启动了CPU中断。 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
author-avatar
我家在波力牧场
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有